目錄
1、Git衝突解決
(要點就是單個文件處理,提交後再操作,循環往復,直到衝突全部解決)
1.1、命令行操作
- 操作(如pull)之後,衝突文件會在控制檯輸出,找到文件手動修改,可以通過下列命令找出所有不一樣的文件
git pull(合併同理)
git diff
- 提交代碼到本地倉庫
git add .
git commit -m '提交註釋'
- 再次操作(pull)代碼到本地,如果還有衝突,再次找到文件,手動修改
git pull(合併同理)
- 如此循環以上兩個操作,直到衝突全部解決完畢,則可以提交到遠程倉庫
git push
1.2、webstrom操作
- 操作之後(如pull,merge),若有衝突,會有提示,直接點擊view them打開衝突文件
- 或者是打開conflict視圖【右擊項目(VCS)->git->resolve conflict】
- 打開衝突視圖之後,會展示所有衝突文件,如下:
- 以下是手動合併的視圖
-
衝突解決完之後,就可以提交到遠程倉庫了
2、覆蓋本地代碼,同步遠程倉庫的代碼
2.1、命令行操作
git fetch --all
git reset --hard origin/master // 這裏是覆蓋master分支,如果是別的分支,改爲origin/分支名
git pull
2.2、webstrom操作
右擊項目,選擇git操作,如下:
獲取倉庫全部代碼之後,重置本地的代碼
3、合併分支代碼到指定分支
3.1、命令操作(此處以test合併到liuxin爲例)
- 切換到需要合併的分支
git checkout liuxin
- 將test分支代碼合併到liuxin
git merge test
- 若在此有衝突,請重複頂部【1.1】操作(commit->merge ->commit->push),若沒有衝突,則直接push即可
3.2、webstrom操作
- 若有衝突,打開衝突視圖進行操作,詳見1.2(commit->merge ->commit->push)
4、常見報錯處理
4.1、無權限push
remote: GitLab: You are not allowed to push code to protected branches on this project.
To http://120.25.195.31/tianjin/qncapp.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'http://120.25.195.31/tianjin/qncapp.git'
- 法一:找git管理員給所用賬號分配權限
- 法二:新建分支,push到新建的分支上,之後再合併
- git branck '分支名' // 新建分支
- git checkout '分支名' // 切換到新建的分支
- git merge master // mater代碼合併到新分支
- git push // push到遠程倉庫
如果還是沒有解決問題,那可能是本地代碼和遠程倉庫代碼不一致,可以使用命令,如下:
- git pull --rebase origin master // 重置本地代碼,與遠程倉庫保持一致,commit本地代碼不會被沖掉
- git push -u origin master // 重新用master分支push到遠程倉庫
在這裏還沒有解決問題,可以使用最暴力的一種方式,把代碼備份之後,直接覆蓋本地代碼,重新提交,詳情查看第2點
5、更換遠程倉庫地址
5.1、命令行方式
git remote set-url origin 你新的遠程倉庫地址
6、同步倉庫分支到本地
git remote update origin -p
歡迎留言交流!!!