Git 使用指南

https://www.cnblogs.com/mjbin/p/5820942.html

Git簡介:

Git是分佈式的,這意味着它並不依賴於中心服務器來保存你文件的舊版本。任何一臺機器都可以有一個本地版本的控制系統,其實就是一個硬盤上的文件,我們稱之爲倉庫(repository)。如果是多人協作的話,你還需要一個線上倉庫,用來同步代碼等信息。

1.安裝Git

2.配置Git(記錄操作誰幹的,到時候好甩鍋)

 $ git config --global user.name "My Name" 
 $ git config --global user.email [email protected]


本地倉庫(repository)操作:

1.創建一個新倉庫 – git init

$ cd Desktop/git_exercise/ 
$ git init

 

2.檢查狀態 – git status

Git status是另一個非常重要的命令,它反饋給我們倉庫當前狀態的信息:是否爲最新代碼,有什麼更新等等。

 

3.暫存 – git add

Git有個概念叫“暫存區“,你可以把它看成一塊空白的畫布,包裹着所有你可能會提交的變動。可以通過 git add 命令添加內容,最後使用 git commit 提交(創建一個快照)。

添加一個文件

 git add filename

如果需要提交目錄下的所有內容,可以這樣做:

git add -A

同樣可以做修改和刪除

 

4.提交 – git commit

一次提交代表着我們的倉庫到了一個新的狀態,就像是一個快照,允許我們像使用時光機一樣回到之前的某個時間點。

創建提交,需要我們至少在到暫存區有一次修改(剛纔我們做了git add,可以是修改,刪除),然後輸入命令:

git commit -m "提交描述."

 

4.撤銷修改 – git checkout

git checkout功能是本地所有修改的。沒有的提交的,都返回到原來的狀態


遠程倉庫:

1.本地倉庫鏈接遠程倉庫 – git remote add

把本地倉庫鏈接到Github上,在命令行執行以下內容:

$ git remote add origin https://github.com/igeekbar/awesome-project.git

一個項目可以同時擁有好幾個遠程倉庫,爲了區分通常會起不同的名字。通常主要的遠程倉庫被稱爲origin

https://github.com/igeekbar/awesome-project.git 遠程倉庫地址

 

2.上傳到服務器 – git push

把本地的提交傳送到服務器的動作叫做push。每次我們要提交修改到服務器上時,都會使用到git push

$ git push origin master 

origin 遠程倉庫名字     master 本地倉庫默認分支名字

 

3.克隆倉庫 – git clone

其他人下載遠程倉庫項目到本地,他們可以用git clone命令下載到本地。

$ git clone https://github.com/igeekbar/awesome-project.git

https://github.com/igeekbar/awesome-project.git遠程倉庫項目地址

本地會自動創建一個本地倉庫,並創建一個默認分支,名字叫master,並自動將github上的版本設爲遠程倉庫。

 

4.從服務器上獲得修改 – git pull

更新遠程倉庫的代碼到本地

git pull origin master 

origin 遠程倉庫名字    master 本地倉庫默認分支名字


分支

當你在做一個新功能的時候,最好是在一個獨立的區域上開發(原始項目的拷貝),通常稱之爲分支。分支之間相互獨立,並且擁有自己的歷史記錄,直到你決定把他們合併到一起。這樣做的原因是:

  • 已經可以運行的穩定版本的代碼不會被破壞
  • 不同的功能可以由不同開發者同時開發
  • 開發者可以專注於自己的分支,不用擔心被其他人破壞
  • 在不確定哪個版本更好之前,同一個特性可以在不同的分支上創建多個版本,便於比較

1.創建新分支 – git branch

每一個本地倉庫的默認分支都叫master, 創建新分支可以用git branch <name>命令:

$ git branch bugs

創建一個叫bugs的分支

 

2.切換分支 – git checkout

 git branch 
  amazing_new_feature 
* master

* 號表示當前活躍分支爲master,現在我們想在新分支上開發新的特性,使用git checkout切換分支。有一個參數表示要切換到的分支。

 git checkout amazing_new_feature

 

3.合併分支 – git merge

我們在“bugs”分支想添加一個lalala.txt。和之前一樣我們來創建文件、添加到暫存區、提交。

git add lalala.txt //添加文件lalala.txt到本地倉庫分支bugs的暫存區

git commit -m "" //將bugs暫存區的文件lalala.txt提交到本地倉庫分支bugs

切換回來本地倉庫的默認分支master,lalala.txt文件沒了

git checkout master

將本地倉庫分支bugs的修改內容合併到默認分支master

git merge bugs

本地倉庫默認分支master有lalala.txt文件了。


1.比對兩個不同提交之間的差別

 

每次提交都有一個標識id,查看所有歷史提交和他們的id

1.1 git log

commit ba25c0ff30e1b2f0259157b42b9f8f5d174d80d7 //提交id
Author: igeekbar //提交者
Date:   Fri July 29 17:15:28 2016 +0300 //提交日期
    New feature complete //提交說明

commit bc11c0ff30e1b2f0259157b42b9f8f5d174d80d7 //提交id
Author: igeekbar //提交者
Date:   Fri July 29 17:15:28 2016 +0300 //提交日期
    New feature complete //提交說明

id很長,但是當使用它的時候你並不需要複製整個字符串,前幾個字符就夠了。

1.2 顯示某次提交的內容:

git show ba25

1.3 git diff [commitid1]..[commitid2]:

git show ba25..bc11

 

2.回滾某個文件到之前的版本

Git允許我們將某個特定的文件回滾到特定的提交,使用的也是 git checkout命令。

git checkout 09bd8cc1 lalala.txt   

 //09bd8cc1 =commit id      lalala.txt文件名

 

3.回滾提交

如果你發現最新的一次提交忘記加入某個文件,或是信息輸入的不正確,你可以通過 git commit --amend來改正,它會把最新的提交打回暫存區,並嘗試重新提交。

如果是更復雜的情況,比如不是最新的提交除了問題,你可以使用git revert

最新的一次提交別名也叫HEAD

git revert HEAD  or  其他版本提交 git revert ba25

 

4.解決合併衝突

手動解決完,提交到本地倉庫分支,提交到遠端倉庫。

 

5.配置 .gitignore

大部分項目中,會有些文件、文件夾是我們不想提交的。爲了防止使用git add -A時不小心提交,我們可以利用.gitignore文件:

  • 在項目根目錄創建.gitignore文件
  • 在文件中列出不需要提交的文件名、文件夾名,每個一行
  • .gitignore文件需要像普通文件一樣add、commit和push

*.log //  後綴名是.log的
build/  build文件下的
node_modules/ 
.idea/ 
my_notes.txt  //my_notes.txt文件

 

6.git 放棄本地修改,遠程分支強制覆蓋本地

git fetch --all    //只是下載代碼到本地,不進行合併操作

git reset --hard origin/分支名如master    //把HEAD指向最新下載的版本

git pull //再從服務器拉取下最新的

 

7.git stash   & git stash pop

git stash 代碼改一半,不想提交到本地倉庫分支,又不想放棄修改。暫時提交到棧中緩存。

git stash pop從棧中取出再使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章