1. 程式人生 > >Git學習筆記:基礎篇

Git學習筆記:基礎篇

被拒絕 斜杠 etc 信息 bsp 鏈接地址 一起 add 學習

git可以說是所有開發者出開發語言之外的最基本的基本功了,熟悉git可以方便的進行代碼版本控制,以及與其他開發者進行合作開發。本文內容是我以往學習git時做的筆記,主要是關於git最基本的操作,但 只要熟練掌握本篇內容,可以說采用git進行開發基本沒有問題了。

1. git init :要對現有的某個項目開始用 Git 管理,只需到此項目所在的目錄運行此命令。

2. git add + 文件名:將某個文件納入到版本控制中。註:文件名可以用通配符,另外也可以用“git add all”或者“git add -a”來一次性將所有文件添加到版本控制中。

3. git clone [url] :將遠程倉庫克隆到本地,其中url為遠程倉庫鏈接地址。

4. git status :查看git倉庫中的文件出於哪一種狀態。註:Untracked files是指未被git倉庫追蹤的文件;new file是指已被跟蹤,並處於暫存狀態的文件;modified指的是已跟蹤文件的內容發生了變化,但還沒有放到暫存區。

5. 配置忽略文件:有些文件無需納入 Git 的管理,也不希望它們總出現在未跟蹤文件列表,那麽可以在git項目文件中新建一個名為“.gitignore”的文件,在這個文件中配置需要忽略的文件。文件 .gitignore 的格式規範如下:

所有空行或者以註釋符號 # 開頭的行都會被 Git 忽略。

可以使用標準的 glob 模式匹配。

匹配模式最後跟反斜杠(/)說明要忽略的是目錄。

要忽略指定模式以外的文件或目錄,可以在模式前加上驚嘆號(!)取反。

例如:

# 此為註釋 – 將被 Git 忽略

*.a # 忽略所有 .a 結尾的文件

!lib.a # 但 lib.a 除外

/TODO # 僅僅忽略項目根目錄下的 TODO 文件,不包括 subdir/TODO

build/ # 忽略 build/ 目錄下的所有文件

doc/*.txt # 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt

6. git diff :查看尚未暫存的文件更新了哪些部分。git diff –cached則是查看已經暫存起來的文件和上次提交時的快照之間的差異。

7. git commit :提交更新。當git commit不加其他參數時,會打開文本編輯器來輸入描述信息。也可以使用git commit -m "描述信息"的方式直接在命令中添加描述信息。給 git commit 加上 -a 選項,Git 就會自動把所有已經跟蹤過的文件暫存起來一並提交,從而跳過 git add 步驟。

技術分享圖片

8. git rm + "文件名" : 從 Git 中移除某個文件(磁盤目錄中也會刪除),就必須要從已跟蹤文件清單中移除(確切地說,是從暫存區域移除),然後提交。如果只是簡單地從工作目錄中手工刪除文件,git追蹤中仍會顯示。如果刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除選項 -f強制移除。

9. git rm --cached + “文件名” :把文件從 Git 倉庫中刪除(亦即從暫存區域移除),但仍然希望保留在當前工作目錄中,以便稍後在 .gitignore 文件中補上,用 –cached 選項即可。運行這一命令之後,該文件會重新編程untraced的狀態。

10. git mv “舊文件名" ”新文件名" : 重命名文件,或者說移動文件。

11. git log:查看提交歷史記錄。

git log -p -2 :-p參數是用來顯示每次提交的內容差異,-2表示僅顯示最近的兩次提交。

12. git commit --amend:撤銷提交操作。例如:首先創建一個1.txt文件,並保存到git。

touch 1.txt

git add 1.txt

git commit -m "新建文件1.txt"

這時候發現,忘了還要新建一個2.txt文件,這時候後悔了,想要撤銷剛才的提交,新建號兩個文件,一起add 然後commit。可以這麽做:

touch 2.txt

git add 2.txt

git commit --amend -m "新建兩個文件1.txt和2.txt"

這之後,上一一次的commit就回作廢,使用git log查看記錄就回發現,提示信息之後"新建兩個文件1.txt和2.txt"這一個,而"新建文件1.txt"已經被覆蓋(刪除)了。

13. git reset HEAD 文件名:取消暫存(add)。當對多個文件同時add之後,發現某個文件不需要add,那麽就可以使用這一命令。

14.git checkout -- 文件名 :撤銷之前的所有操作,恢復到最近的一次commit。註意,該命令必須是修改之後還未進行add之列的操作,否則就回不去了。該命令你一旦執行,所做修改都會消失,回到最近的commit。

15. git remote 查看遠程倉庫。該命令會列出所有的遠程倉庫,如果確定配置有遠程倉庫,至少應該能看到 origin - 這是 Git 給你克隆的倉庫服務器的默認名字(註:origin是默認的遠程倉庫名稱,master是默認的分支)。進一步,還可以指定參數-v:

git remote -v 指定選項 -v,會顯示需要讀寫遠程倉庫使用的 Git 保存的簡寫與其對應的 URL。

git remote show [remote-name] 顯示遠程倉庫的詳細信息(真的很詳細)。

16. git remote add <shortname> <url> 添加遠程服務器。可以認為shortname是給遠程倉庫取的一個別名,也就是說上面說的remote-name,下次使用這個遠程倉庫時,就不需要通過url,使用這個別名就好了。

17. git fetch [remote-name] [branch-name] 從遠程倉庫中拉取。這個命令會訪問遠程倉庫,從中拉取所有你還沒有的數據。 執行完成後,你將會擁有那個遠程倉庫中所有分支的引用,可以隨時合並或查看。 必須註意 git fetch 命令會將數據拉取到你的本地倉庫 - 它並不會自動合並或修改你當前的工作。 當準備好時你必須手動將其合並入你的工作。

18.git pull [remote-name] [branch-name] 從最初克隆的服務器上抓取數據並自動嘗試合並到當前所在的分支。

19. git push [remote-name] [branch-name] 將本地倉庫推送到遠程倉庫remote-name上的branch-name上。只有當你有所克隆服務器的寫入權限,並且之前沒有人推送過時,這條命令才能生效。 當你和其他人在同一時間克隆,他們先推送到上遊然後你再推送到上遊,你的推送就會毫無疑問地被拒絕。 你必須先將他們的工作拉取下來並將其合並進你的工作後才能推送。

20. git remote rename old-name new-name 給遠程倉庫重命名

21. git remote rm + 倉庫名 移除遠程倉庫

Git學習筆記:基礎篇