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