git同步原始碼到gitee和github
如何把我們的原始碼同步到gitee或github遠端倉庫中
同步方式分以下幾種:
1、命令同步
- 先檢視下我們是否有遠端倉庫:git remote -v
- 如有就要刪除遠端倉庫或是同命令覆蓋,如全新安裝就不需要!
- 刪除已關聯的名為origin的遠端庫: git remote rm origin
- 關聯GitHub的遠端庫: git remote add github [email protected]:xxx/xxx.git
- 關聯Gitee的遠端庫: git remote add gitee [email protected]:xxx/xxx.git
2、配置修改
修改.git資料夾內的config檔案:
[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "git"] url = [email protected]:chloneda/demo.git fetch = +refs/heads/*:refs/remotes/github/* [branch "master"] remote = origin merge = refs/heads/master
將上述檔案內容[remote "origin"]內容複製,修改origin名稱
3、同步流程
上傳熱媒
git add . (將變更提交至快取區) git commit -m "提交說明(註釋)" - update可以輸入你需要上傳的描述
提交命令
# 提交到github
git push github master '- 將本地變更推送至遠端倉庫master分支'
#
提交到gitee
git push gitee master '- 將本地變更推送至遠端倉庫master分支'
檢視狀態
git status
更放心程式碼
# 從github拉取更新 git pull github # 從gitee拉取更新 git pull gitee
專案推送時遇Git推送錯誤:
error: failed to push some refs to ‘[email protected]:name/project.git’
1、分析:
這個問題的產生是因為遠端倉庫與本地倉庫並不一致所造成。
2、解決方案:
那麼我們把遠端庫同步到本地庫就可以了。
執行命令:
git pull --rebase origin master
將遠端倉庫中的更新合併到本地倉庫,–rebase的作用是取消掉本地倉庫中剛剛的commit
然而未果,出現錯誤:
- error: src refspec master does not match any
分析:引起該錯誤的原因是,目錄中沒有檔案,空目錄不能提交。
依次執行:
git pull origin master git push origin master
踩到的坑
上述過程中,更新或提交程式碼時可能會遇到fatal:refusing to merge unrelated histories (拒絕合併無關的歷史) 錯誤,解決辦法:
首先將遠端倉庫和本地倉庫關聯起來。
git branch --set-upstream-to=origin/remote_branch your_branch
其中,origin/remote_branch是你本地分支對應的遠端分支,your_branch是你當前的本地分支。
然後使用git pull整合遠端倉庫和本地倉庫。
git pull --allow-unrelated-histories (忽略版本不同造成的影響)
重新更新、提交即可。
注: 如遇到 Git沒有共同祖先的兩個分支合併 的情形請自行查詢!
報錯處理
git pull 的時候報如下錯誤程式碼:
error: Pulling is not possible because you have unmerged files.
嘗試用git stash沒有作用。
Pull is not possible because you have unmerged files.
本地的push和merge會形成MERGE-HEAD(FETCH-HEAD), HEAD(PUSH-HEAD)這樣的引用。HEAD代表本地最近成功push後形成的引用。MERGE-HEAD表示成功pull後形成的引用。可以通過MERGE-HEAD或者HEAD來實現型別與svn revet的效果。
解決:
1.將本地的衝突檔案沖掉,不僅需要reset到MERGE-HEAD或者HEAD,還需要–hard。沒有後面的hard,不會沖掉本地工作區。只會沖掉stage區。
git reset –hard FETCH_HEAD
2.git pull就會成功。
如我們現在在dev分支上,剛開發完專案,執行了下列命令:
git add . git commit -m '提交的備註資訊' git push -u origin dev
想將dev分支合併到master分支,操作如下:
- 1、首先切換到master分支上
git checkout master
- 2、如果是多人開發的話 需要把遠端master上的程式碼pull下來
git pull origin master //如果是自己一個開發就沒有必要了,為了保險期間還是pull
- 3、然後我們把dev分支的程式碼合併到master上
git merge dev
- 4、然後檢視狀態及執行提交命令
git status On branch master Your branch is ahead of 'origin/master' by 12 commits. (use "git push" to publish your local commits) nothing to commit, working tree clean
//上面的意思就是你有12個commit,需要push到遠端master上
> 最後執行下面提交命令
git push origin master
- 5其他命令
更新遠端分支列表 git remote update origin --prune 檢視所有分支 git branch -a 刪除遠端分支Chapater6 git push origin --delete Chapater6 刪除本地分支 Chapater6 git branch -d Chapater6