Git如何在本地查看遠端倉庫超前本地提交的日誌信息?僅僅是日誌信息哦
A、B同時維護一個遠端倉庫G
A在本地拉取了G最新的代碼信息,然後開始進行本地的開發工作。在A完成自己工作後,想看一下倉庫上有多少條超前本地HEAD的提交日誌?(並不想拉取遠端倉庫中的最新代碼哈)我搜到大量回答如下:
$ git fetch origin master
將某個遠程主機origin的更新,全部取回本地。
然而,這條命令將遠端分支的代碼,取回本地,是我所不希望的。我只是想看看,那些超前的log信息而已。
所以,對於這個問題,該怎樣操作呢?
git fetch
用git fetch
然後用git log 查看remotes branch上的紀錄--------------補充的分割線------------------有一天,有個admin創建了一個cloud用來給別人託管代碼
有位叫jerry的程序員就開始使用這個cloud
他想做個cake,於是初始化了一個git倉庫,並且將其和cloud建立了連接,以後會將cake的改動同步到cloud裡面去。他開始了cake的創作過程,然後將第一版cake上傳到了cloud裡面。
他往裡面加了點cream和apple,作為第一版的原料,隨後push到了cloud裡面。有另一位程序員tom得知了cake的存在,對其很感興趣,於是和jerry商量過後加入了cake的開發。於是他去cloud上clone了cake,並且在他電腦上也存放在了名為cake的文件夾內。
隨後tom往cake里增加了一點banana但他還沒有將banana的改動同步到cloud上去,所以只是在他的電腦里目前cake包含了cream,apple和banana。
他想看看當初clone下來的當下,cloud裡面jerry做了哪些改動。
於是他先用git branch -a查看了下所有本地和遠端的branch(遠端的branch並不是存在於cloud裡面的branch,而是在本地的,只不過它是「當時」的cloud的branch的一個鏡像),然後用git log remotes/origin/master看了下當初的history。發現jerry只是往裡面加了點cream和apple。與此同時,jerry還在繼續往cloud里更新他的cake。
他又往cake里加了點oringe,並且push到了cloud上。也許因為和tom有12個小時時差,他也許太累了,也許太懶了,他並沒有告訴tom他又更新了什麼東西。而現在tom剛好也想看看後來jerry往cloud里有放了些什麼東西
於是他用git fetch從origin(這裡就是cloud的地址)上獲取了cloud上master branch當前的內容。這麼做只會更新本地的.git里的內容,並不會修改tom自己的code,因為只fetch,沒merge。然後他發現了jerry的增加的oringe
tom隨後想到要創建一個branch來跟蹤cloud上最新的情況git學習中,如下兩條命令不知道是不是你想要的:
1)git remote -v 查看遠程版本庫信息,我這裡大概是
origin git@xxx.git (fetch)origin git@xxx.git (push)2)git log origin完全不需要git fetch,也比SVN簡單得多。兩種方法:
1. 方法1: git status
~/git/linux$ git status
On branch master
Your branch is behind origin/master by 25 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
nothing to commit, working directory clean
2. 方法2: git log --left-right --oneline origin/分支名稱...分支名稱
~/git/linux$ git log --left-right --oneline origin/master...master
&< 144c766 Merge tag pci-v4.11-fixes-2 of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
&< 34bbce9 Merge branch for-linus of git://git.kernel.dk/linux-block
&< bb61ce5 Merge tag media/v4.11-2 of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
&< 672a2c8 axonram: Fix gendisk handling
...
注意,上面操作都是在同比一個本地倉庫的同一個分支的同一個狀態下。
用svn遠沒這麼麻煩 直接就能看遠程的更新記錄 雖然只有一個分支 但可以人工判斷合併代碼,根本沒必要弄這些分支 git好多流程根本就沒必要
推薦閱讀:
※為什麼git默認不區分文件夾大小寫?
※gg———good use of git,一個實用的git分支模型
※自學Git,有哪些書籍或者好的學習資源?
※Github 有什麼優缺點?把項目直接搭建在 Github 上合適嗎?