GIT學習筆記

2021-08-15 17:23:52 字數 4078 閱讀 3544

git是一款免費、開源的分布式版本控制系統,可以有效、高速的處理從很小到非常大的專案版本管理。

學習git可以參見《git版本控制管理》一書,o'reilly出版社。

1、建立倉庫

$ git init repo_name

2、轉殖倉庫

$ git clone from [to]

將from的倉庫轉殖到to。from可以是本地倉庫或遠端倉庫,如果沒有to引數,建立跟from倉庫同名的倉庫目錄。

3、檢視遠端倉庫

$ git remote

使用`-v`選項可以檢視遠端倉庫的名字以及路徑

4、檢視遠端倉庫的資訊:

$ git remote show origin

5、新增遠端倉庫

$ git remote add custom_name repo_url

將遠端倉庫repo_url以名字custom_name新增到本地倉庫之上

6、刪除遠端倉庫

$ git remote rm origin_name

7、拉取遠端倉庫

$ git fetch origin_name

8、從遠端倉庫origin_name中拉取資料,但並不合併

$ git pull origin_name

1、新增檔案

$ git add file_name

將檔案file_name納入git的管理範圍並暫存,file_name會自動展開。

2、排除檔案

$ git rm file_name

刪除對檔案fill_name的跟蹤,並從工作目錄中刪除檔案,下次commit之後,file_name會從git倉庫中刪除。

如果該檔案已經被暫存,則需要新增引數`-f`表示強制刪除。

相當於執行了'rm file_name'和'git add file_name'

僅僅停止檔案的跟蹤,而不從工作目錄刪除:

$ git rm --cached file_name

3、取消暫存檔案

$ git reset head file_name

取消對 file_name 的暫存

4、撤銷對檔案的修改

$ git checkout -- file_name

將檔案恢復到上次暫存或提交的狀態。

5、提交

$ git commit

$ git commit -m "對本次提交的描述"

如果沒`-m`引數,則會呼叫git定義的編輯器編輯對本次提交的描述。

如果使用`-a`引數,則預設先執行`git add .`然後提交。

如果上次提交不完善,可以使用引數`--amend`將本次提交與上次提交合併為一次提交。

回退至上一版本,則用

$ git reset --hard head^

1、檢視已暫存和未暫存的修改

$ git diff

2、檢視暫存中的修改

$ git diff --staged

3、檢視修改的狀態

$ git status

* 如果git的工作目錄沒有任何修改則會顯示「nothing to  commit」

* 有修改,一下三種狀態可能會顯示多個:

* 如果有檔案沒有納入版本管理則會顯示"untracked files"

* 如果有檔案修改且沒有加入暫存區域,則會顯示"changes not staged for commit"

* 如果有修改加入到暫存區域則會顯示"changes to be committed"

1、顯示標籤列表

$ git tag

顯示具體的標籤資訊:

$ git show tag_name

2、建立不帶注釋的標籤

$ git tag tag_name

3、建立帶注釋的標籤

$ git tag -a tag_name -m "對標籤的描述資訊"

4、刪除標籤

$ git tag -d tag_name

5、提交遠端標籤

$ git push origin_name tag_name

如果標籤名已經存在,則會失敗。

使用`--tags`可以一次性提交所有標籤。

6、檢視遠端標籤

$ git ls-remote --tags

7、拉取遠端標籤

$ git fetch origin tag tag_name

1、檢視分支

$ git branch

列印出分支列表。使用引數`-a`可以檢視遠端和本地的所有分支,使用引數`-r`可以檢視遠端分支。

2、建立本地分支

$ git branch branch_name

建立本地分支並切換到新的分支:

$ git checkout -b branch_name

3、合併分支

將分支b合併到分支a:

$ git checkout a

$ git merge b

4、刪除本地分支

$ git branch -d branch_name

如果branch_name沒有被合併,刪除會失敗,可以採用強制刪除:

$ git branch -d branch_name

5、建立遠端分支

$ git push branch_name origin_name_origin_branch_name

6、跟新遠端分支

$ git push branch_name origin_name_origin_branch_name

7、跟蹤遠端分支

$ git checkout -b local_branch_name origin_name/origin_branch_name

將遠端倉庫origin_name的分支繫結到本地分支local_branch_name上

8、刪除遠端分支

$ git push origin_name --delete origin_branch_name

刪除遠端倉庫origin_name的遠端分支origin_branch_name

1、檢視更新commit

$ git whatchanged

2、檢視歷史記錄

$ git log

沒有任何引數的情況下,會按提交時間列出所有的更新

輸出格式選項:

* `-p` 顯示每次提交的詳細差異

* `--stat` 同上,只是顯示每次提交的修改的檔案

* `--pretty` 同上,只是可以自定義顯示的格式

* `oneline`

* `short`

* `full`

* `fuller`

* `format`

* `%h`

* `%h`

* `%t`

* `%t`

* `%p`

* `%p`

* `%an`

* `%ae`

* `%ad`

* `%ar`

* `%cn`

* `%ce`

* `%cd`

* `%cr`

* `%s`

* `--shortstat`

* `--name-only`

* `--name-status`

顯示提交中檔案的增刪改查狀態

* `--abbrev-commit`

* `--relative-date`

* `--graph`

輸出長度

* `-n` 顯示最近的n條記錄

* `--since`, `--after` 僅顯示指定時間之後的提交。

* `--until`, `--before` 僅顯示指定時間之前的提交。

* `--author` 僅顯示指定作者相關的提交。

* `--committer` 僅顯示指定提交者相關的提交。

* `--grep` 僅顯示含指定關鍵字的提交

* `-s` 僅顯示新增或移除了某個關鍵字的提交

學習git會不知不覺陷入到另外乙個知識點,就是markdown了。markdown是一種可以使用普通文字編輯器編寫的標記語言,通過簡單的標記語法,使普通文字內容具有一定的格式,具有輕量、簡單、通用的特點。生成的檔案字尾為.md。

Git學習筆記

git stash git stash list 顯示git棧內的所有備份,可以利用這個列表來決定從那個地方恢復。git stash clear 清空git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。關於git stash的詳細解釋,適用場合,這裡做乙個說明 使用git...

git 學習筆記

1 git checkout master 切換分支 2 git checkout b xx 新建分支,同時切換到該分支 3 dev 4 git add a 將變動檔案,提交到index 5 git commit m 將 暫存區 檔案,加入到版本控制中。6 git checkout master 7...

Git 學習筆記

顯示版本庫.git所在的目錄 git rev parse git dir 顯示工作區的根目錄 git rev parse show toplevel 相對於工作區根目錄的相對目錄 git rev parse show prefix git config 命令各引數的區別 git config e 版...