歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 已經會用Git了?不會這十招怎麼行

已經會用Git了?不會這十招怎麼行

日期:2017/2/28 14:29:35   编辑:Linux教程

之前我們發了一些教程讓你熟悉Git基礎和在團隊合作環境中使用Git.我們討論的這些Git命令足夠讓一個開發者在Git的世界裡生存下去。在這篇教程裡,我們試著探索如何高效地管理你的時間以及如何充分利用Git提供的特性。

基於Gitolite的Git服務架設 http://www.linuxidc.com/Linux/2014-02/96991.htm

Fedora通過Http Proxy下載Git http://www.linuxidc.com/Linux/2009-12/23170.htm

在Ubuntu Server上安裝Git http://www.linuxidc.com/Linux/2009-06/20421.htm

服務器端Git倉庫的創建(Ubuntu) http://www.linuxidc.com/Linux/2011-02/32542.htm

Linux下Git簡單使用教程(以Android為例) http://www.linuxidc.com/Linux/2010-11/29883.htm

Git權威指南 PDF高清中文版 http://www.linuxidc.com/Linux/2013-10/91053.htm

注意:這裡介紹的命令中有的包含方括號(例如:git add -p [file_name])。在這些例子中,你應該用你自己的數字、標識符等替代方括號裡的內容,並且去掉方括號。

1. Git自動補全

如果你在命令行環境中運行Git命令,每次都手動地逐個輸入命令是一件很無聊的事。為此,你可以花幾分鐘時間配置一下Git命令的自動補全功能。

在*nix系統運行下列命令下載自動補全腳本:

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

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

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

盡管我之前已經提到過,但我還是想再強調一下:如果你想使用完整的Git特性,你絕bi應該切換到命令行環境。

2. 在Git中忽略文件

你是不是對出現在你Git庫裡面的編譯生成文件(比如.pyc)感到很無語?或者你是不是很厭惡不小心將他們添加到了Git?直接看這裡,這裡有一個方法可以讓你告訴Git忽略所有這些文件和目錄。只需要創建一個名字為.gitignore的文件,裡面列出你不想要Git跟蹤的文件和目錄。可以用感歎號(!)列出例外情況。

  1. *.pyc
  2. *.exe
  3. my_db_config/
  4. !main.pyc

3. 誰動了我的代碼?

當事情出了亂子時立馬責怪別人這是人類的天性。如果你的服務器程序不能正常工作了,要找出罪魁禍首是非常簡單的--只需要執行git blame。這個命令告訴你文件裡的每一行的作者是誰,最後改動那一行的提交,以及提交的時間戳。

  1. git blame [file_name]

在下面的截圖裡,你可以看到在一個更大的庫裡這個命令的輸出是什麼樣的:

4. 查看庫的歷史

在之前的教程裡,我們已經看過了如何使用git log命令。不管怎樣,有3個選項你應該知道。

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

這是這3個選項合起來使用的效果:

5. 不要丟失對某個提交的跟蹤

假設你提交了一些不需要的東西,然後你進行了hard重置回到之前的狀態。後來,你發現在這個過程中你丟失了其他一些重要的信息,你想要把這些信息找回來,或者至少可以查看一下這些信息。這就需要git reflog幫忙。

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

如果執行git log命令,可以看到提交歷史,這是我的庫的一部分:

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

Git 的詳細介紹:請點這裡
Git 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved