case 1 :

在 my_branch commit 後 , 準備要 push 到 master branch

先切換到 master branch , 然後 git pull , 取得 master 最新的 code

切回 my_branch , 做 git rebse master , 此時發現 conflict ( 出現如下的訊息 )

CONFLICT (content): Merge conflict in package/test1.c

CONFLICT (content): Merge conflict in package/test2.c



1. 修改所有 conflict 的 code ( 此範例是 test1.c 和 test2.c )

2. 將 conflict 的檔案做 git add ( 也可以用 git gui 做 add )

3. 執行 git rebase --continue 即可解決


case 2:

在 Changes not staged for commit 裡面

要刪除修改過的檔案 , 執行 git checkout -- package/test3.c

若要刪除多個檔案 , 直接加在後面即可 , 例如

git checkout -- package/test3.c package/test4.c


case 3 :

在 master branch 要 push 的時候出現


error: failed to push some refs to 'gitolite@'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

代表有人比你早一步 push ( 手上的 code 不是最新的 )

解決方法 :

1. 回到 push 前的 commit ( reset master branch to here )

2. git pull // 抓最新的 code

3. git checkout my_branch

4. git rebase master branch

5. git checkout master branch

6. git push



看完文章請按 讚 or 推 , 感謝啦 ~ 

創作者 Kai-Cho 的頭像

Kai-Cho 的環遊世界

Kai-Cho 發表在 痞客邦 留言(0) 人氣()