Linux系統下Git的基本配置和使用樣本

來源:互聯網
上載者:User

   git config設定檔

  一.Git已經在你的系統中了,你會做一些事情來客戶化你的Git環境。你只需要做這些設定一次;即使你升級了,他們也會綁定到你的環境中。你也可以在任何時刻通過運行命令來重新更改這些設定。

  Git有一個工具被稱為git config,它允許你獲得和設定組態變數;這些變數可以控制Git的外觀和操作的各個方面。這些變數可以被儲存在三個不同的位置:

  1./etc/gitconfig 檔案:包含了適用於系統所有使用者和所有庫的值。如果你傳遞參數選項’--system’ 給 git config,它將明確的讀和寫這個檔案。

  2.~/.gitconfig 檔案 :具體到你的使用者。你可以通過傳遞--global 選項使Git 讀或寫這個特定的檔案。

  3.位於git目錄的config檔案 (也就是 .git/config) :無論你當前在用的庫是什麼,特定指向該單一的庫。每個層級重寫前一個層級的值。因此,在.git/config中的值覆蓋了在/etc/gitconfig中的同一個值。

  在Windows系統中,Git在$HOME目錄中尋找.gitconfig檔案(對大多數人來說,位於C:Documents and Settings$USER下)。它也會尋找/etc/gitconfig,儘管它是相對於Msys 根目錄的。這可能是你在Windows中運行安裝程式時決定安裝Git的任何地方。

  二.你的標識(Your Identity)

  2.1 當你安裝Git後首先要做的事情是設定你的使用者名稱稱和e-mail地址。這是非常重要的,因為每次Git提交都會使用該資訊。它被永遠的嵌入到了你的提交中:

  代碼如下:

  $ git config --global user.name "John Doe"

  $ git config --global user.email johndoe@example.com

  重申一遍,你只需要做一次這個設定。如果你傳遞了 --global 選項,因為Git將總是會使用該資訊來處理你在系統中所做的一切操作。如果你希望在一個特定的項目中使用不同的名稱或e-mail地址,你可以在該項目中運行該命令而不要--global選項。

  2.2 你的編輯器(Your Editor)

  現在,你的標識已經設定,你可以配置你的預設文字編輯器,Git在需要你輸入一些訊息時會使用該文字編輯器。預設情況下,Git使用你的系統的預設編輯器,這通常可能是vi 或者 vim。如果你想使用一個不同的文字編輯器,例如Emacs,你可以做如下操作:

  代碼如下:

  $ git config --global core.editor emacs

  2.3 你的比較工具(Your Diff Tool)

  另外一個你可能需要配置的有用的選項是預設的比較工具它用來解決合并時的衝突。例如,你想使用vimdiff:

  代碼如下:

  $ git config --global merge.tool vimdiff

  Git可以接受kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, 和 opendiff作為有效合并工具。你也可以設定一個客戶化的工具;查看第7章獲得更多關於此的資訊。

  2.4 檢查你的設定(Checking Your Settings)

  如果你想檢查你的設定,你可以使用 git config --list 命令來列出Git可以在該處找到的所有的設定:

  代碼如下:

  $ git config --list

  user.name=Scott Chacon

  user.email=schacon@gmail.com

  color.status=auto

  color.branch=auto

  color.interactive=auto

  color.diff=auto

  ...

  你可能會看到一個關鍵字出現多次,這是因為Git從不同的檔案中(例如:/etc/gitconfig以及~/.gitconfig)讀取相同的關鍵字。 在這種情況下,對每個唯一的關鍵字,Git使用最後的那個值。

  你也可以查看Git認為的一個特定的關鍵字目前的值,使用如下命令 git config {key}:

  代碼如下:

  $ git config user.name

  Scott Chacon

  2.5 擷取協助(Getting help)

  如果當你在使用Git時需要協助,有三種方法可以獲得任何git命令的手冊頁(manpage)協助資訊:

  代碼如下:

  $ git help

  $ git --help

  $ man git-

  例如,你可以運行如下命令擷取對config命令的手冊頁協助:

  代碼如下:

  $ git help config

  這些命令非常友好,因為你可以在任何地方存取他們,即使非線上狀態。如果手冊頁和本書仍然不足而你需要個人的協助,你可以試著使用Freenode IRCServer上的#git或#github 頻道(irc.freenode.net)。這些頻道會定期由數百個對Git非常熟悉的專業人士所維護,他們會非常樂意協助你。

  2.6 總結(Summary)

  你應該對Git是什麼以及Git與你可能使用的其它CVCS之間的不同有了一個基本的瞭解。你也應當在你的系統中有了一個具有你個人標識的可以工作的Git版本。是時候來學習一些Git的基本知識了。

  git 實際使用記錄

  1、git 提交代碼錯誤執行個體分析

  代碼如下:

  $ git push origin master

  代碼如下:

  To git@192.168.1.3:k6.git

  ! [rejected] master -> master (non-fast-forward)

  error: failed to push some refs to 'git@192.168.1.3:k6.git'

  To prevent you from losing history, non-fast-forward updates were rejected

  Merge the remote changes before pushing again. See the 'Note about

  fast-forwards' section of 'git push --help' for details.

  cbk@YCS:~/work/k6_130708/k6$ git fecth

  git: 'fecth' is not a git command. See 'git --help'.

  git push 錯誤,因為沒有先pull最新的代碼,需要以下操作:

  代碼如下:

  $ git fetch origin

  $ git merge origin/master

  $ git push origin master

  如果安裝git後沒有設定你的使用者名稱稱和e-mail地址,還需要先執行:

  代碼如下:

  $ git config --global user.name "cbk"

  $ git config --global user.email cbk@ylf.com

  這是非常重要的,因為每次Git提交都會使用該資訊。它被永遠的嵌入到了你的提交中:

  重申一遍,你只需要做一次這個設定。如果你傳遞了 --global 選項,因為Git將總是會使用該資訊來處理你在系統中所做的一切操作。如果你希望在一個特定的項目中使用不同的名稱或e-mail地址,你可以在該項目中運行該命令而不要--global選項。

  具體到此問題,如果沒有設定你的使用者名稱稱和e-mail地址,則一直正確無法push代碼。

  2、Git 跟蹤一個檔案的提交記錄

  在跟蹤Android代碼是,有時候發現某個關鍵檔案被改動了,需要跟蹤查看對這個關鍵檔案的所有commit的記錄,以便理解其中的修改原因和過程:

  代碼如下:

  git log -p “file name”

  顯示這個檔案的每一行的最後提交commit,方便定位commit:

  代碼如下:

  git blame “file name"

  顯示log詳細修改記錄:

  git show [log_id_num],例如:

  代碼如下:

  git show 75704c8543b033619a80439ddb0fd69cc7cb172c

  3、git初始化之git config

  1). 下面的命令將修改/home/[username]/.gitconfig檔案,也就是說下面的配置只對每一個ssh的使用者可見,所以每個人都需要做。

  提交代碼的log裡面會顯示提交者的資訊

  代碼如下:

  git config --global user.name [username]

  git config --global user.email [email]

  在git命令中開啟顏色顯示

  代碼如下:

  git config --global color.ui true

  2). 下面的命令將修改/etc/gitconfig檔案,這是全域配置,所以admin來做一次就可以了。

  配置一些git的常用命令alias

  代碼如下:

  sudo git config --system alias.st status #git st

  sudo git config --system alias.ci commit #git commit

  sudo git config --system alias.co checkout #git co

  sudo git config --system alias.br branch #git branch

  3). 也可以進入工作根目錄,運行git config -e,這樣就只會修改工作區的.git/config檔案,但是暫時還用不著.

  git config檔案的override順序是3)>1)>2).

  4.版本回退

  代碼如下:

  git reset --hard commit_id

  代碼如下:

  git checkout commit_id

  代碼如下:

  git clean –df commit_id

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.