git同步源碼到gitee和github


如何把我們的源碼同步到gitee或github遠程倉庫中

同步方式分以下幾種:


 

1、命令同步   

  • 先查看下我們是否有遠程倉庫:git remote -v
  • 如有就要刪除遠程倉庫或是同命令覆蓋,如全新安裝就不需要!
  • 刪除已關聯的名為origin的遠程庫: git remote rm origin  
  • 關聯GitHub的遠程庫: git remote add github git@github.com:xxx/xxx.git
  • 關聯Gitee的遠程庫: git remote add gitee git@gitee.com:xxx/xxx.git

2、配置修改

修改.git文件夾內的config文件:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "git"]
    url = git@github.com: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 ‘git@gitee.com: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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM