[英]git fetch and pull
在這里,我們正在將源代碼遷移到github,而這一交易讓我頭疼:)
我做了什么:我去了我們的工作區(一個Eclipse項目),並做了git init
和git add .
然后git commit -am "first commit"
一切正常,然后,我將其推送到github。 也成功。
但是有一個大問題:我的朋友剛剛對名為A.java
的文件進行了更改,而我剛剛對B.java
了更改。 好吧,沒什么大不了的。 然后,他將其推送到github。 當我嘗試推動時,我的推動被拒絕。 好的,我做了一個git pull github master
,然后再次推送,現在,我的“提交消息”變成Merge branch 'master' of github.com:germantech/projectName
好的,我在做什么錯?
ps:對不起我的英語
您沒有做錯任何事-執行git pull github master
,git轉到遠程github
指示的存儲庫,獲取master
分支所需的所有內容,然后將其合並到當前分支中。 拉動之前,您具有以下歷史記錄:
O --- A (master)
...其中O
是帶有消息“ firts commit”的提交,而A
是將更改引入A.java
的提交。 同時,您的朋友有以下歷史記錄:
O --- B (master)
...並且已經推送到GitHub。 當您的git pull github master
將其合並到您的歷史記錄中時,它將創建一個“合並提交”以使用兩個master
分支的更改來表示樹的狀態:
O --- B --- M (master)
\ /
---A ---
相反,如果您希望保持歷史記錄的線性,則可以執行git pull --rebase github master
,它將“重放”不在該分支的遠程版本中的,位於該版本的刪除版本之上的提交。分支:
o --- B --- A' (master)
有些人更喜歡-我個人不在乎。
您是在同一倉庫中還是在不同倉庫中? 如果您需要重新設置更改並再次推送
git pull --rebase github master
git push github master
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.