Git常用命令[精簡版]

Git分布式版本控制工具

下載地址: Git下載地址

Git 誕生于一個(gè)極富紛爭大舉創(chuàng)新的年代。Linux 內(nèi)核開源項(xiàng)目有著為數(shù)眾多的參與者。 絕大多數(shù)的 Linux 內(nèi)核維護(hù)工作都花在了提交補(bǔ)丁和保存歸檔的繁瑣事務(wù)上(1991-2002年間)。 到 2002 年,整個(gè)項(xiàng)目組開始啟用一個(gè)專有的分布式版本控制系統(tǒng) BitKeeper 來管理和維護(hù)代碼。

到了 2005 年,開發(fā) BitKeeper 的商業(yè)公司同 Linux 內(nèi)核開源社區(qū)的合作關(guān)系結(jié)束,他們收回了 Linux 內(nèi)核社區(qū)免費(fèi)使用 BitKeeper 的權(quán)力。 這就迫使 Linux 開源社區(qū)(特別是 Linux 的締造者 Linus Torvalds)基于使用 BitKeeper 時(shí)的經(jīng)驗(yàn)教訓(xùn),開發(fā)出自己的版本系統(tǒng)。

常用的Git代碼托管服務(wù)

前面我們已經(jīng)知道了Git中存在兩種類型的倉庫,即本地倉庫和遠(yuǎn)程倉庫。那么我們?nèi)绾未罱℅it遠(yuǎn)程倉庫呢?我們可以借助互聯(lián)網(wǎng)上提供的一些代碼托管服務(wù)來實(shí)現(xiàn),其中比較常用的有GitHub、碼云、GitLab等。

  • gitHub是一個(gè)面向開源及私有軟件項(xiàng)目的托管平臺(tái),因?yàn)橹恢С諫it作為唯一的版本庫格式進(jìn)行托管,故名gitHub
  • 碼云是國內(nèi)的一個(gè)代碼托管平臺(tái),由于服務(wù)器在國內(nèi),所以相比于GitHub,碼云速度會(huì)更快
  • GitLab是一個(gè)用于倉庫管理系統(tǒng)的開源項(xiàng)目,使用Git作為代碼管理工具,并在此基礎(chǔ)上搭建起來的web服務(wù)

配置賬戶信息

  • git config --global user.email "郵箱"
  • git config --global user.name "用戶名"

查看配置信息

配置信息會(huì)保存在~/.gitconfig文件中

  • git config --list:查看所有配置信息
  • git config user.name:查看用戶名稱

獲取Git倉庫

[方式一]:在本地初始化一個(gè)Git倉庫

  • git init

[方式二]:從遠(yuǎn)程倉庫克隆

  • git clone 倉庫url

本地倉庫操作

  • git status:查看文件狀態(tài)

    • untracked 未跟蹤(未被納入版本控制)
    • tracked 已跟蹤(被納入版本控制)
    • Unmodified 未修改狀態(tài)
    • Modified 已修改狀態(tài)
    • Staged 已暫存狀態(tài)
  • git status –s:使輸出信息更加簡潔

  • git add 文件名:將指定文件加入暫存區(qū)

  • git add .:將所有文件加入暫存區(qū)

  • git reset 文件名:將指定文件從暫存區(qū)取消

  • git commit -m "提交日志":將暫存區(qū)的文件修改提交到本地倉庫

  • git rm 文件名:刪除指定文件(刪除后提交生效)

  • git log:查看日志記錄

配置忽略區(qū)域

首先需要?jiǎng)?chuàng)建一個(gè).gitignore的文件,在里面編寫一些配置信息

#忽略.a結(jié)尾的所有文件
*.a

#不忽略lib.a文件
!lib.a

#忽略當(dāng)前目錄下的TODO文件
/TODO

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

#doc目錄下所有以.txt結(jié)尾的文件都忽略
doc/*.txt

#doc目錄包含其子目錄下所有.pdf文件都忽略
doc/**/*.pdf

遠(yuǎn)程倉庫操作

  • git remote -v:查看遠(yuǎn)程倉庫
  • git remote add <shortname> <url> :添加一個(gè)新的遠(yuǎn)程Git倉庫
  • git clone <url>:從遠(yuǎn)程倉庫克隆
  • git remote rm <shortname>:移除遠(yuǎn)程倉庫
  • git fetch <shortname> <branch>:是從遠(yuǎn)程倉庫獲取最新版本到本地倉庫,不會(huì)自動(dòng)merge
  • git pull <shortname> <branch>:是從遠(yuǎn)程倉庫獲取最新版本并merge到本地倉庫
    • 如果當(dāng)前本地倉庫不是從遠(yuǎn)程倉庫克隆,而是本地創(chuàng)建的倉庫,并且倉庫中存在文件,此時(shí)再從遠(yuǎn)程倉庫拉取文件的時(shí)候會(huì)報(bào)錯(cuò)(fatal: refusing to merge unrelated histories ),解決此問題可以在git pull命令后加入?yún)?shù)--allow-unrelated-histories
  • git git push <shortname> <branch>:推送到遠(yuǎn)程倉庫

Git分支操作

  • git branch:列出所有本地分支
  • git branch -r:列出所有遠(yuǎn)程分支
  • git branch -a:列出所有本地分支和遠(yuǎn)程分支
  • git checkout <branch>:切換分支
  • git push <shortname> <branch>:推送至遠(yuǎn)程倉庫分支
  • git merge <branch>:合并當(dāng)前使用的分支和命令指定的分支
    • 如果你在兩個(gè)不同的分支中,對(duì)同一個(gè)文件的同一個(gè)部分進(jìn)行了不同的修改,Git 就沒辦法合并它們,同時(shí)會(huì)提示文件沖突。此時(shí)需要我們打開沖突的文件并修復(fù)沖突內(nèi)容,最后執(zhí)行git add命令來標(biāo)識(shí)沖突已解決
  • git branch -d <branch>:刪除分支
    • 如果要?jiǎng)h除的分支中進(jìn)行了一些開發(fā)動(dòng)作,此時(shí)執(zhí)行上面的刪除命令并不會(huì)刪除分支
  • git branch -D <branch>:強(qiáng)制刪除分支
  • git push origin –d <branch>:刪除遠(yuǎn)程倉庫中的分支
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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