我正在通過閱讀relevant section of the Pro Git Book瞭解有關使用Git遙控器的信息。爲什麼git log在git fetch之後沒有顯示任何新東西?
如果您克隆存儲庫,該命令會自動將該遠程存儲庫添加到名稱「origin」下。因此,git fetch origin
可以獲取自克隆(或從上次獲取)以來推送到該服務器的所有新作品。
重要的是要注意,git fetch
命令只有將數據提取到本地存儲庫;它不會自動將其與您的任何工作合併或修改您目前的工作。準備就緒後,您必須將其手動合併到您的工作中。
這是我試過的。我克隆了一個存儲庫並編輯了一個文件。 在原始存儲庫中,有人更新了相同的文件並推送。 然後,
我跑
git fetch
。 它顯示了一些更新進度消息。但是,git log
未顯示該更新。我誤解了git fetch
的功能嗎?我錯過了什麼嗎?我跑
git pull
,和我
error: Your local changes to 'hello_world.c' would be overwritten by merge. Aborting. Please, commit your changes or stash them before you can merge.
在這裏,我相信它也合併和避免意外的數據丟失,它將中止。
編輯: 感謝您的答案。在尋找答案之前,其實,我是想自己,實現用下面的命令/輸出相同:
$ git ls-remote origin
d0006a6bfa95e0e90aa820a0e50d31a548625652 HEAD
d0006a6bfa95e0e90aa820a0e50d31a548625652 refs/heads/master
$ git ls-remote .
14375458b8a6b84f82d9fa4d2ded0bb8c9e87431 HEAD
14375458b8a6b84f82d9fa4d2ded0bb8c9e87431 refs/heads/master
d0006a6bfa95e0e90aa820a0e50d31a548625652 refs/remotes/origin/HEAD
d0006a6bfa95e0e90aa820a0e50d31a548625652 refs/remotes/origin/master
還與以下命令:
$git log origin --oneline
$git log --oneline
感謝您對我的愚蠢的問題軸承; - )
* [...] git fetch命令將數據提取到本地存儲庫[...] *小心使用術語「拉」;它在Git中有着非常明確的含義,並且使用它的方式只會導致混淆。 – Jubobs