Git 入門


 

Git入門

 

1、下載

下載地址:http://git-scm.com/downloads

從這里可以下載到多種操作系統的支持版本,目前有:Mac、Windows、Linux、Solaris。

 

2、安裝

在Linux 上安裝:

如果你想在 Linux 上用二進制安裝程序來安裝 Git,可以使用發行版包含的基礎軟件包管理工具來安裝。 如果以 Fedora 上為例,你可以使用 yum:

 

$ yum install git

 

 

 

在Windows上安裝:

Windows版本是一個exe文件,與其它軟件的安裝方式是一樣的。

 

3、初次使用Git前的配置

 

1)配置用戶、郵箱:

$ git config --global user.name "fjn"
$ git config --global user.email fs1194361820.com

 

如果使用了 --global 選項,那么該命令只需要運行一次,因為之后無論你在該系統上做任何事情, Git 都會使用那些信息。 當你想針對特定項目使用不同的用戶名稱與郵件地址時,可以在那個項目目錄下運行沒有 --global 選項的命令來配置。

 

2)關聯文本編輯器:

$ git config --global core.editor emacs

 

 

下面是windows系統上關聯EditPlus的方法:

$ git config --global core.editor “\”D:\Program Files\EditPlus\x86\EditPlus.exe\””

 

 

4、查看help

$ git help <verb>
$ git <verb> --help
$ man git-<verb>

 

也可以直接通過瀏覽器進行查看,因為Git相關問題就在Git安裝目錄下:

 

 

5、將現在項目納入Git管理

 

如果你打算使用 Git 來對現有的項目進行管理,你只需要進入該項目目錄並輸入:

$ git init

 

         使用這個命令會初始化一個Git倉庫,但你項目中的文件並沒有加入到倉庫中,所以需要做的就是將項目中的文件加入到倉庫中,方法如下:

$ git add *.c
$ git add LICENSE
或者可以直接使用:
$ git add *

 

最終使用:
$ git commit -m 'initial project version'

 

         或許你用習慣了SVN等,add命令入SVN中的加入是類似的,但又是不同的,最后需要提交。-m 后是commit comment。

 

6、從遠程倉庫clone項目

如果你想獲得一份已經存在了的 Git 倉庫的拷貝,比如說,你想為某個開源項目貢獻自己的一份力,這時就要用到 git clone 命令。 如果你對其它的 VCS 系統(比如說Subversion)很熟悉,請留心一下你所使用的命令是"clone"而不是"checkout"。

$ git clone https://github.com/libgit2/libgit2

 

 如果你想在克隆遠程倉庫的時候,自定義本地倉庫的名字,你可以使用如下命令:

$ git clone https://github.com/libgit2/libgit2 mylibgit

 

 

7、Git管理下的文件的狀態變化周期

 

請記住,你工作目錄下的每一個文件都不外乎這兩種狀態:已跟蹤或未跟蹤。 已跟蹤的文件是指那些被納入了版本控制的文件,在上一次快照中有它們的記錄,在工作一段時間后,它們的狀態可能處於未修改,已修改或已放入暫存區。 工作目錄中除已跟蹤文件以外的所有其它文件都屬於未跟蹤文件,它們既不存在於上次快照的記錄中,也沒有放入暫存區。 初次克隆某個倉庫的時候,工作目錄中的所有文件都屬於已跟蹤文件,並處於未修改狀態。

編輯過某些文件之后,由於自上次提交后你對它們做了修改,Git 將它們標記為已修改文件。 我們逐步將這些修改過的文件放入暫存區,然后提交所有暫存了的修改,如此反復。所以使用 Git 時文件的生命周期如下:

 

 

使用 git status 可以查看文件的狀態,例如:

 

 

8、常用命令

 

1)將文件納入跟蹤: git add filename

2)將文件移除跟蹤: git rm filename

3)要在 Git 中對文件改名,可以這么做:git mv,例如:

$ git mv README.md README

 

4)git log 查看提交日志

5)恢復指定文件:git checkout

 

最后將文件提交就行了,使用git commit。

如果想要直接提交文件,而不使用git add,可以:git commit –a –m ‘ commit message’。如果在提交時不指定comment,就會啟動你指定的默認的文件編輯器,讓你輸入comments。

 

題外話:

編輯文件:直接在git bash中使用vim file,例如:

 

 

效果:

 

如果想在windows系統下也能夠使用vim工具,可以使用gvim。 

而在windows上可以使用這些命令的緣由是在git/bin目錄下,有大量的相關的exe存在:

 

 

9、使用遠程倉庫

 

在前面第6小節中,已經說明了如何從遠程倉庫clone一個已存在的項目。這里就再說一些遠程操作相關的其他內容:

1)  關聯遠程倉庫

將遠程倉庫關聯,就可以在本地倉庫與遠程倉庫之前進行文件推送與拉取了。

git remote add name url

$ git remote add shortName https://github.com/userid/reposName

 

2)從遠程倉庫pull、fetch:

使用git pull,會將遠程倉庫中的指定分支到本地倉庫的一個分支中,並將兩者合並。

使用git fetch,會從遠程倉庫中抓取你沒有的數據,但不會合並,必須手動合並。

3)push推送到遠程倉庫

使用git push reposName branchName,將倉庫reposName中的branchName推送文件到遠程倉庫。

例如,要將本地修改好的代碼同步到遠程倉庫中。就需要如下操作:

      a)使用{git add filename}, {git add --update filename}將添加(或者修改) 的文件在本地倉庫上建立索引。

      b)使用{git commit -m your_commit_message} 將對代碼的修改提交到本地倉庫上。

      c)使用{git push remoteReposName branchName} 將本地倉庫上的代碼推送到遠程倉庫。

       例如下面就是將本地倉庫的代碼同步到遠程倉庫上,只不過這個遠程倉庫是在GitHub上的.

       

4)遠程倉庫重命名:

git remote rename oldName newName

其實是遠程倉庫在Git程序中的一個配置,並不會真正的改變遠程倉庫的名稱,只是為了讓你在使用時能夠進行區分。

5)遠程倉庫移除:

git remote rm name

         同樣並不會真正的刪除遠程倉庫,而是你在使用git時,不能再對遠程倉庫進行操作了。

 

6)切換到遠程分支:

git checkout -b {localBranchName} {origin}/{remoteBranchName}  

代表切換到遠程分支 origin/remoteBranchName, 並在本地創建分支 localBranchName

例如:

         我先clone kafka trunk :

                  git clone https://github.com/apache/kafka.git .

         然后查看當前分支: git status

         最后切到0.10.0分支:git checkout -b 0.10.0 origin/0.10.0

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM