自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

已經(jīng)會(huì)用Git了?不會(huì)這十招怎么行

開源
之前我們發(fā)了一些教程讓你熟悉Git基礎(chǔ)和在團(tuán)隊(duì)合作環(huán)境中使用Git.我們討論的這些Git命令足夠讓一個(gè)開發(fā)者在Git的世界里生存下去。在這篇教程里,我們?cè)囍剿魅绾胃咝У毓芾砟愕臅r(shí)間以及如何充分利用Git提供的特性。

之前我們發(fā)了一些教程讓你熟悉Git基礎(chǔ)在團(tuán)隊(duì)合作環(huán)境中使用Git.我們討論的這些Git命令足夠讓一個(gè)開發(fā)者在Git的世界里生存下去。在這篇教程里,我們?cè)囍剿魅绾胃咝У毓芾砟愕臅r(shí)間以及如何充分利用Git提供的特性。

[[116954]]

注意:這里介紹的命令中有的包含方括號(hào)(例如:git add -p [file_name])。在這些例子中,你應(yīng)該用你自己的數(shù)字、標(biāo)識(shí)符等替代方括號(hào)里的內(nèi)容,并且去掉方括號(hào)。

1. Git自動(dòng)補(bǔ)全

如果你在命令行環(huán)境中運(yùn)行Git命令,每次都手動(dòng)地逐個(gè)輸入命令是一件很無聊的事。為此,你可以花幾分鐘時(shí)間配置一下Git命令的自動(dòng)補(bǔ)全功能。

在*nix系統(tǒng)運(yùn)行下列命令下載自動(dòng)補(bǔ)全腳本:

cd ~
curl https://raw.github.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash

然后,添加下面的行到你的~/.bash_profile文件:

if [ -f ~/.git-completion.bash ];then
    . ~/.git-completion.bash
fi

盡管我之前已經(jīng)提到過,但我還是想再強(qiáng)調(diào)一下:如果你想使用完整的Git特性,你絕bi應(yīng)該切換到命令行環(huán)境。

2. 在Git中忽略文件

你是不是對(duì)出現(xiàn)在你Git庫里面的編譯生成文件(比如.pyc)感到很無語?或者你是不是很厭惡不小心將他們添加到了Git?直接看這里,這里有一個(gè)方法可以讓你告訴Git忽略所有這些文件和目錄。只需要?jiǎng)?chuàng)建一個(gè)名字為.gitignore的文件,里面列出你不想要Git跟蹤的文件和目錄??梢杂酶袊@號(hào)(!)列出例外情況。

*.pyc
*.exe
my_db_config/

!main.pyc

3. 誰動(dòng)了我的代碼?

當(dāng)事情出了亂子時(shí)立馬責(zé)怪別人這是人類的天性。如果你的服務(wù)器程序不能正常工作了,要找出罪魁禍?zhǔn)资欠浅:?jiǎn)單的--只需要執(zhí)行g(shù)it blame。這個(gè)命令告訴你文件里的每一行的作者是誰,***改動(dòng)那一行的提交,以及提交的時(shí)間戳。

git blame [file_name]

git blame demonstration

在下面的截圖里,你可以看到在一個(gè)更大的庫里這個(gè)命令的輸出是什么樣的:

git blame on the ATutor repository

4. 查看庫的歷史

在之前的教程里,我們已經(jīng)看過了如何使用git log命令。不管怎樣,有3個(gè)選項(xiàng)你應(yīng)該知道。

  • --oneline - 壓縮每次的提交信息,只保留一個(gè)縮減的Hash值和說明文字,然后把這些都展示在一行里。
  • --graph - 這個(gè)選項(xiàng)將在左邊畫出一個(gè)文字界面的提交歷史圖。如果你只有一個(gè)分支,用這個(gè)選項(xiàng)查看歷史時(shí)是沒什么意義的。
  • --all - 顯示所有分支歷史。

這是這3個(gè)選項(xiàng)合起來使用的效果:

Use of git log with all, graph and oneline

5. 不要丟失對(duì)某個(gè)提交的跟蹤

假設(shè)你提交了一些不需要的東西,然后你進(jìn)行了hard重置回到之前的狀態(tài)。后來,你發(fā)現(xiàn)在這個(gè)過程中你丟失了其他一些重要的信息,你想要把這些信息找回來,或者至少可以查看一下這些信息。這就需要git reflog幫忙。

簡(jiǎn)單的git log只能告訴你最近的提交,這個(gè)提交的父提交,父提交的父提交,等等。但是git reflog是一個(gè)HEAD指向的提交的列表。記住,這個(gè)列表依賴于你自己的本地操作環(huán)境,它不是庫的一部分,也不包含在push或者merge中。

如果執(zhí)行g(shù)it log命令,可以看到提交歷史,這是我的庫的一部分:

Project history

但是,git reflog命令顯示了一個(gè)被我用hard重置丟掉的提交(b1b0ee9-HEAD@{4}).

Git reflog

原文鏈接:http://www.linuxeden.com/html/softuse/20140726/154105.html

責(zé)任編輯:牛小雨 來源: linuxeden
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)