情況是這樣的,,現(xiàn)在遠(yuǎn)程有一個倉庫,,分支就一個,是master,。然后我本地的倉庫是從遠(yuǎn)程的master上clone下來的,。大家都是clone下來,再在自己本地改好,,再commit然后pull然后push,,大家都是這么做的。那么現(xiàn)在問題來了: 1,,那我本地這個也算是個分支,?還是就是一個本地倉庫? 答:本地和遠(yuǎn)程的關(guān)系相當(dāng)于兩個分支,你感覺一樣是因為你 2,,如果我在遠(yuǎn)程新建了個分支,然后我pull了下來,,那我本地到底有分支這個說法嗎,?我本地的分支是不是就是那個遠(yuǎn)程新建的分支? 答:你遠(yuǎn)程新建了一個分支拉到本地的道理是一樣的,屬于復(fù)制了一份,但是本地分支和遠(yuǎn)程分支已經(jīng)是兩個東西了 3,,本地倉庫和本地分支有什么區(qū)別,? 答:本地分支屬于本地倉庫里,是包含關(guān)系,一個倉庫里可以有很多分支 4,commit是提交到本地倉庫,,然后push,,這個push是把所有代碼推到遠(yuǎn)程倉庫,還是只是把commit的地方推到遠(yuǎn)程倉庫,? 答:肯定不會全量推送到遠(yuǎn)程的,是通過對比 commit 的記錄,如果本地高于遠(yuǎn)程就直接把多出來的 5,那為什么要先commit,,然后pull,,然后再push,我pull了,,豈不是把自己改的代碼都給覆蓋掉了嘛,,因為遠(yuǎn)程沒有我改的代碼,我pull,,豈不是覆蓋了我本地的改動好的地方了,?那我還怎么push? 答:這個先 commit 再 pull 最后再push 的情況就是為了應(yīng)對多人合并開發(fā)的情況,
6,,兩個分支A和B,,A合并B和B合并A,有區(qū)別嗎,? 答:兩個互相合并的唯一區(qū)別就是 A->B 的時候 B 分支上會產(chǎn)生一個 merge_commit ,,被改變的分支是 B ;如果現(xiàn)在沒有發(fā)生任何改動執(zhí)行 B->A ,,則A和B兩分支才會完全相同,。 徐增友 |
|