用多了項目中的git一鍵項目管理,你是否還記得git的這些命令呢?

有段時間沒有更新文章了。讓各位久等了。今天給大家分享一篇關於-git命令行的基本操作-的文章。

用多了項目中的git一鍵項目管理,你是否還記得git的這些命令呢?

創建Git倉庫

可以直接調用git init初始化當前目錄,即創建Git倉庫。

獲得Git倉庫

如果需要克隆遠程倉庫,可以使用git clone,比如:

git clone https://git.oschina.net/Tocy/SampleCode.git

提交更新

Git中每個文件都有三種狀態:committed、staged、modified。它們之間關係如下:

commit

commit --> --- --modify

我們獲取的Git倉庫中的所有文件都是committed狀態,如果你在本地修改了文件a,a的狀態就變成modified的;如果使用git add a,a的狀態變成staged;如果使用git commit,a的狀態就變成commited。這種狀態變化也說明覆制代碼是很方便的,但是提交更新請慎重。

當然還有一種文件狀態,未跟蹤狀態(unversioned/untracked),通過使用git add可以把未跟蹤狀態變更為staged;通過git rm可以將staged或者committed狀態變為未跟蹤狀態。

git status

通常提交前先檢查下修改了什麼內容,當前Git目錄下各文件的狀態。

$ git statusOn branch masterInitial commitUntracked files: (use "git add <file>..." to include in what will be committed) Readme.mdnothing added to commit but untracked files present (use "git add" to track)/<file>

git add

git add 可以添加文件或者目錄,也可以使用通配符。比如:

git add Readme.md # add file onlygit add *.cpp # add all cpp filesgit add /home/code/ # add all files in /home/code

git diff

git diff可以查看當前目錄的所有修改。

提交之前,還是單獨確認下處於staged狀態的文件有哪些,並保證修改正確。在實際應用中,可能還需要使用git diff導出PATCH做代碼走讀。

可以使用git diff --staged或git diff --cached查看staged與上次提交快照之間的區別。

git commit

提交前需慎重。直接調用git commit會彈出編輯器,輸入提交日誌(如果是多行日誌,建議使用)。

針對單行日誌提交的情況,可以使用如下命令:

git commit -m "add readme"。

還有一種快捷的提交方式,直接跳過stage緩存區,直接提交當前目錄下的所有修改git commit -a(使用這個命令前建議確認下當前目錄的修改是否正確、必須)。

git rm

git rm 會把文件從當前目錄刪除(不會保存刪除的文件)。如果需要從Git倉庫中刪除,但保留在當前工作目錄中,亦即從跟蹤清單中刪除,可以使用git rm --cached readme.md。

提交歷史查看

可以使用git log查看當前工程的所有提交的日誌。

git log --stat # 僅顯示摘要選項git log --pretty=oneline # 定製記錄格式git log --graph # 圖像化分支和版本更新

遠程倉庫

可以使用git remote查看當前的遠程庫。

git remote -v可以顯示對應的克隆地址。(對於多個遠程倉庫很有用)

添加遠程倉庫

git remote add [short_name] [url]可以添加新的遠程倉庫。

從遠程倉庫抓取數據

git fetch [remote-name]可以從遠程倉庫抓取數據到本地。

也可以使用git pull

推送數據到遠程倉庫

git push [remote_name] [branch_name]

默認使用origin和master。

查看遠程倉庫信息

git remote show origin

遠程倉庫的刪除和重命名

git remote rename [old_name] [new_name]

git remote rm [remote_name]

打Tags

可使用git tag顯示當前庫中的標籤。

添加標籤(含附註)

git tag -a v0.1 -m "my version 0.1"

使用如下命令查看Tag日誌信息(指定對應標籤的名字)

git show v0.1

也可使用SHA-1的提交表示創建tag:

git tag -a v0.2 [SHA-1] -m "my version 0.2"

分享標籤

默認的,git push不會推送標籤信息到遠程倉庫,需要通過命令顯式推送。

git push origin v0.1

如果需要推送所有標籤,使用

git push origin --tags

Git分支

git分支是輕量級的,速度很快,僅記錄索引信息。

顯示所有分支

使用git branch可顯示當前所有分支。

可以使用--merged和--no-merged查看已經合併、未合併的分支。

創建及切換分支

可以使用下面命令直接切換並創建分支

git checkout -b testing

等價於

$ git checkout master$ git merge hotfix

注意切換分支時請保持工作目錄沒有未提交的修改。Git鼓勵使用分支,處理完問題之後合併分支即可。

分支合併

將hotfix分支合併到master(主分支)上,需要通過下面命令:

$ git checkout master$ git merge hotfix

合併之後可以使用git branch -d hotfix刪除分支。

如果合併時存在衝突,需要手工修改。


分享到:


相關文章: