Git常用命令

git clone

  

  將遠程倉庫中的項目下載到本地倉庫

  用法: 進入到git工作目錄,輸入git clone https://github.com/rodickmini/taptempo.git 進行克隆

將遠程倉庫中的項目下載到本地倉庫


git checkout

切換分支或將修改的文件恢復

用法:

clone下代碼後,代碼默認會在master分支,我們需要把代碼切換到一個自己的分支,這樣的話,我們隨便怎樣修改,怎樣提交,都不會影響到master或其它分支。

git checkout -b feature-test

這個時候,feature-test分支和master分支的代碼是完全一樣的,但是此後,你做的所有修改都不會影響master分支,只會在feature-test分支上往下進行。


git status

  顯示當前工作目錄的文件狀態

用法

git status

  • 結果中,
  • Changes to be committed列出了已經add了還沒有commit的文件
  • Changes not staged for commit列出了修改了,但還沒有add的文件
  • Untracked files列出了新加入的,還沒有被git管理起來的文件

git add

作用

將一個普通文件交給git管理或者將修改過的文件添加到git的索引庫中。當我們使用git commit時,git將依據索引庫中的內容來進行文件的提交。

用法

git add index.html



如果我們一次修改比較多的文件,需要把所有修改的文件都添加到索引庫,可以使用:

git add --all


如果我們誤把一個文件添加進了索引庫,可以使用以下命令將其“拉回”暫存區:

git reset HEAD index.html


如果我們想把一個文件恢復成修改前的狀態,可以使用以下命令,就撤銷了我們所有的修改:

git checkout index.html

但是,執行這個命令要慎重哦!一旦執行,你的所有修改都找不回來啦!

在執行之前,看一下這次修改了那些東西,那麼就需要使用git diff命令:

git diff index.html


git diff 命令會調出一個類似於vi的文本編輯器(只讀),裏面紅色的部分說明你刪除了<h1>catch the beat</h1>這一行,綠色的部分說明你添加了display: block;這一行。看完了,按q鍵就可以退出啦~

git commit

作用

將所有添加到索引庫的文件提交到本地倉庫

最簡單的commit操作如下:

git commit -m "upd"

所以commit message主要要說3件事:

  1. 是upd(更新)、add(添加)還是del(刪除)操作
  2. 操作了什麼文件(或者什麼內容)
  3. 爲什麼要做這個操作(或者能夠解決什麼bug,解決什麼問題)
即-m 後面的引號能寫註釋

git push

作用

將本地倉庫的修改推送到遠程倉庫

用法

git push origin feature-test

如果不push,協作的小夥伴們將永遠不知道你關起門來做了什麼傷天害理的事兒,所以,當我們做完功能後,要記得使用git push將自己的改動推送到遠程代碼倉庫。

如果遠程倉庫當前沒有feature-test這個分支,將會新建分支。

git fetch

作用

將遠程代碼倉庫的代碼下載到本地


用法

本地倉庫維護着一堆“remote-tracking branches”,翻譯過來叫“遠程跟蹤分支”,對應着本地倉庫裏remote/master remote/develop這些分支。

fetch操作後,遠程跟蹤分支就和遠程代碼倉庫裏的相應分支代碼保持一致了~

git fetch

fetch操作默認只會fetchorigin倉庫的分支,如果要fetch其它倉庫的分支,需要在後面加上倉庫名:

git fetch repo-caiyou

通常,我們的feature分支在完成使命後會被管理員刪除掉,而我們各自的本地卻不知道,硬盤空間吃緊。所以,如果我們想在管理員刪除了遠端的某些分支的時候,將自己本地對應的“遠程跟蹤分支”刪除掉,需要在fetch操作時加一個-p參數:

git fetch -p


git merge

作用

將一個或多個分支合併

用法

比如我們當前在develop分支上,git fetch之後,我們把遠程代碼倉庫中的develop分支下載到了本地倉庫,但是並沒有merge到我們當前工作的develop分支裏,看log的話,我們會發現我們本地的develop分支和remote/develop分支還差了老遠~因此需要進行如下操作:

git merge origin/develop

這樣,develop分支就和remote/develop分支一樣了。

git merge操作通常還用在別的一些場景中,比如,我們的同事在feature-x分支上做好了某個業務,此時,需要將feature-x分支合併到develop分支,便於在測試環境上線,就需要先切換到develop分支:

git checkout develop

再將feature-x分支merge到develop分支:

git merge feature-x

當然,如果是比較大的變更,或是涉及到比較重要的文件時,這類業務上的merge操作建議在github上使用pull-request,或是gitlab系統裏的merge-request,貿然merge產生大量衝突會很蛋疼的哦~

git pull

作用

將遠程代碼倉庫裏的代碼下載下來並自動合併到當前工作的分支

用法

git pull

不負責任地講,git pull基本上等於git fetch + git merge FETCH_HEAD,但是,git pull操作無法看清中間的代碼差異和合並的邏輯(其實是我不太清楚啊。。。),曾經踩過坑,代碼合併出問題,所以我個人不會直接使用git pull這個操作,畢竟,耿直boy們更喜歡手動擋嘛~

git log

作用

查看代碼提交日誌

用法

git log

會顯示最基本的log信息,但是不直觀,不能看清分支之間的分叉、合併、前因後果,所以個人習慣加上--all`--decorate--graph這3個參數:

git log --all --decorate --graph



發佈了27 篇原創文章 · 獲贊 48 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章