Git 常用操作

  • 示例中 Git 倉庫目錄為 /git/OnlineBookingSystem/
  • 下文中所有路徑均從根目錄 /git/ 開始。
  • $ 為終端提示符。當(dāng)前路徑一般會標(biāo)識在 $ 前方的括號內(nèi),如果命令較多,則標(biāo)識在代碼段頭部。
  • # 后為輸出內(nèi)容。
  • %后為筆者注釋內(nèi)容

創(chuàng)建倉庫目錄

(git) $ mkdir OnlineBookingSystem
(git) $ cd OnlineBookingSystem

查看幫助信息

git help 命令用于查看常見命令的幫助信息。

查看當(dāng)前目錄狀態(tài)

git status 命令用于查看當(dāng)前目錄中是否存在倉庫,如果存在,報(bào)告?zhèn)}庫狀態(tài)。

(git/OnlineBookingSystem)
$ git status
  # fatal: Not a git repository (or any of the parent directories): .git
  % 注釋:該目錄中暫時還沒有建立過git倉庫。

建立新倉庫

git init 命令用于建立一個全新的倉庫。

(git/OnlineBookingSystem)
$ git init
  # Initialized empty Git repository in C:/Users/11523/Desktop/git/OnlineBookingSystem/.git/
  % 注釋:在該目錄中新建倉庫。
$ git status
  # On branch master
  #
  # Initial commit
  #
  # nothing to commit (create/copy files and use "git add" to track)
  % 注釋:新倉庫已經(jīng)建立,默認(rèn)在master分支。

跟蹤新文件

git add <filename> 命令用于將指定文件加入跟蹤的范圍并將變更存至緩存區(qū)。

該命令可以多次使用,緩存區(qū)會存儲每個文件在最后一次跟蹤時的狀態(tài)。

(git/OnlineBookingSystem)
  % 注釋:使用如下命令前,在該目錄新建一個README.md文件。
$ git add README.md
$ git status
  # On branch master
  #
  # Initial commit
  #
  # Changes to be committed:
  #   (use "git rm --cached <file>..." to unstage)
  #
  #         new file:   README.md
  % 注釋:已經(jīng)開始跟蹤README.md,等待變更被提交。也可以使用"git rm --cached <file>..."移除該緩存。

提交

完成階段性的工作之后,可以將代碼的變動提交到倉庫。

提交變更

git commit -m "commit information" 命令用于提交當(dāng)前緩存中的變更,并且可以指定提交的信息。

提交變更實(shí)際上是將緩存區(qū)中記錄的變更提交至倉庫。若最后一次 add 操作后修改了文件甚至根本沒有追蹤過某些文件,則這些文件的狀態(tài)不會被提交。因此建議在提交變更前使用 git status 命令查看當(dāng)前目錄狀態(tài),確保緩存區(qū)的文件狀態(tài)都是最新的。

(git/OnlineBookingSystem)
$ git commit -m "README.md"
  # [master (root-commit) 2f31dad] README.md
  #  1 file changed, 0 insertions(+), 0 deletions(-)
  #  create mode 100644 README.md
  % 注釋:該變更已經(jīng)提交。
$ git status
  # On branch master
  # nothing to commit, working tree clean
  % 注釋:當(dāng)前本地倉庫已經(jīng)最新,無需提交。
查看提交記錄

git log" 命令用于查看所有 commit 記錄。

(git/OnlineBookingSystem)
$ git log
  # commit 2f31dadcb141ad4ebf9452ec64fb81263e32a8c4 (HEAD -> master)
  # Author: UserName <example@abc.com>
  # Date:   Sat Aug 12 23:33:10 2017 +0800
  # 
  #     README.md
  % 注釋:該記錄就是上述提交的記錄。

分支

分支(branch)相當(dāng)于當(dāng)前狀態(tài)的一個副本,可以在該副本上繼續(xù)工作而不必?fù)?dān)心影響到原來的狀態(tài)。

Git 的分支方式與其他版本控制系統(tǒng)不同。在很多版本控制系統(tǒng)中,創(chuàng)建分支通常意味著拷貝一份完整的代碼,效率較低。而 Git 通過分支指針的方式實(shí)現(xiàn)了高效率的分支操作,因此建議使用分支來控制工作流程。

查看當(dāng)前分支狀態(tài)

git branch 命令用于查看當(dāng)前分支狀態(tài)。

(git/OnlineBookingSystem)
$ git branch
  # * master
  % 注釋:當(dāng)前只有一個分支master,并且處于激活狀態(tài)。
建立新分支

git branch <branchname> 命令用于創(chuàng)建新分支(但不會改變分支激活狀態(tài))。

(git/OnlineBookingSystem)
$ git branch develop
  % 注釋:新建分支develop。
$ git branch
  #   develop
  # * master
  % 注釋:當(dāng)前有兩個分支(master、develop),并且master分支處于激活狀態(tài)。
更改活動分支

git checkout <branchname> 命令用于激活指定分支。

(git/OnlineBookingSystem)
$ git checkout develop
  # Switched to branch 'develop'
$ git branch
  # * develop
  #   master
  % 注釋:當(dāng)前有兩個分支(master、develop),并且develop分支處于激活狀態(tài)。
新建并激活分支

git checkout -b <branchname> 命令用于創(chuàng)建新分支并激活該分支,等效于使用上述兩個命令。

合并分支

git merge <branchname> 命令用于合并分支。使用時需切換到最后保留的分支上,執(zhí)行此命令將指定分支合并到當(dāng)前分支上。

如果兩個分支都對某個文件做了修改,那么合并操作中會產(chǎn)生沖突。沖突內(nèi)容會被 Git 表明在文件中,在文件中解決沖突后再次提交即可解決沖突。

刪除無用分支

git branch -d <branchname> 命令用于刪除無用分支。其中無用分支包括新建的分支與已經(jīng)合并到其他分支的分支。

強(qiáng)制刪除分支

git branch -D <branchname> 命令用于強(qiáng)制刪除 git branch -d <branchname> 命令無法刪除的分支,例如尚未合并到其他分支的含有新代碼的分支。

版本標(biāo)簽

git tag <version> 命令用于產(chǎn)生版本標(biāo)簽。筆者建議代碼開發(fā)至新版本時直接創(chuàng)建一個新分支 <versionname> 存放該版本代碼,而不是使用標(biāo)簽。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 獲取與創(chuàng)建項(xiàng)目 創(chuàng)建倉庫的途徑有:在本地已有的目錄,初始化一個新的;克隆復(fù)制一份別人的項(xiàng)目。 git init 在...
    daking閱讀 6,780評論 3 48
  • Git是目前最流行的版本管理系統(tǒng),也是最先進(jìn)的分布式版本控制系統(tǒng)(distributed version cont...
    pro648閱讀 5,978評論 1 17
  • 常用命令: 查看、添加、提交、刪除、找回,重置修改文件 git help # 顯示command的help gi...
    even_cheng閱讀 318評論 0 3
  • 怎樣幫助孩子整合左腦和右腦,讓孩子能夠與自己的邏輯自我和情感自我產(chǎn)生聯(lián)結(jié)。 答案是:復(fù)述當(dāng)時讓他感覺到不愉快的場景...
    出塵子大媽閱讀 391評論 0 1
  • 作為客戶端開發(fā)者,如果你的 App 中有圖片上傳功能,而且某天測試人員拿著手機(jī)告訴你圖片總是上傳不上去,或者進(jìn)度條...
    MrPeak閱讀 2,288評論 0 19

友情鏈接更多精彩內(nèi)容