git常用命令

主要是是一些常用的Git命令

Git Commands

開始使用git

  • 設(shè)置用戶名
    git config --global user.name "Your Name"
  • 設(shè)置郵箱
    git config --global user.email "email@example.com"
  • 創(chuàng)建倉(cāng)庫(kù)(當(dāng)前目錄)
    git init
  • 添加文件
    git add <file> 添加指定文件
    git add . 添加所有改變的文件
    注:如果add后又修改了文件,還要再add一次之后再commit
  • 提交
    git commit -m "提交說明"
  • 查看狀態(tài)
    git status
  • 查看修改
    git diff <file> 查看單個(gè)文件的更改
    git diff 查看所有文件的更改
  • 查看歷史提交
    git log
    git log --pretty=oneline 一次提交顯示為一行
    git blame <file> 查看一個(gè)文件的修改記錄(誰在什么事件修改了什么)
  • 查看歷史命令
    git reflog

版本控制

  • 版本回退
    git reset --hard HEAD 撤銷所有未提交的操作,包括add
    git reset --hard HEAD^ 回退到上一個(gè)版本
    git reset --hard HEAD^^ 回退到上兩個(gè)版本
    git reset --hard HEAD~100 回退到上100個(gè)版本
    git reset --hard <commit> 回退到指定版本
    git checkout -- <file> 丟棄工作區(qū)的修改,如果文件add到了暫存區(qū)又做了修改,則恢復(fù)到暫存區(qū),否則恢復(fù)到版本庫(kù)的狀態(tài),如果文件刪除了,則回復(fù)到版本庫(kù)的文件
    git reset HEAD <file> 把暫存區(qū)的修改撤銷掉,重新放回工作區(qū)
    注:
    場(chǎng)景1:當(dāng)你改亂了工作區(qū)某個(gè)文件的內(nèi)容,想直接丟棄工作區(qū)的修改時(shí),用命令 git checkout -- <file>
    場(chǎng)景2:當(dāng)你不但改亂了工作區(qū)某個(gè)文件的內(nèi)容,還添加到了暫存區(qū)時(shí),想丟棄修改,分兩步,第一步用命令 git reset HEAD <file>,就回到了場(chǎng)景1,第二步按場(chǎng)景1操作
    場(chǎng)景3:已經(jīng)提交了不合適的修改到版本庫(kù)時(shí),想要撤銷本次提交,參考版本回退,不過前提是沒有推送到遠(yuǎn)程庫(kù)
  • 刪除/重命名
    git rm <file> 刪除文件,盡管文件已經(jīng)添加到暫存區(qū)(add)
    git rm --cached <file> 把文件從版本庫(kù)、暫存區(qū)刪掉,但是保留硬盤文件
    git mv <file> <other file> 重命名文件

遠(yuǎn)程倉(cāng)庫(kù)

  • 創(chuàng)建ssh密鑰
    ssh-keygen -t rsa -C "youremail@example.com"
    注:一路回車,在用戶主目錄里找到.ssh目錄,里面有id_rsa和id_rsa.pub兩個(gè)文件,這兩個(gè)就是SSH Key的秘鑰對(duì),id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人,復(fù)制內(nèi)容,在github上添加
  • 遠(yuǎn)程倉(cāng)庫(kù)
    git remote add origin git@github.com:michaelliao/learngit.git 關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù),遠(yuǎn)程庫(kù)的名字就是origin,這是Git默認(rèn)的叫法,也可以改成別的,但是origin這個(gè)名字一看就知道是遠(yuǎn)程庫(kù)
    git push -u origin master 我們第一次推送master分支時(shí),加上了-u參數(shù),Git不但會(huì)把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支,還會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來,在以后的推送或者拉取時(shí)就可以簡(jiǎn)化命令
    git push origin master 把本地master分支的最新修改推送至GitHub
    git clone git@github.com:michaelliao/gitskills.git 從遠(yuǎn)程倉(cāng)庫(kù)克隆,Git自動(dòng)把本地的master分支和遠(yuǎn)程的master分支對(duì)應(yīng)起來了,并且,遠(yuǎn)程倉(cāng)庫(kù)的默認(rèn)名稱是origin
    git remote 查看遠(yuǎn)程庫(kù)的信息
    git remote -v 查看遠(yuǎn)程庫(kù)的詳細(xì)信息
    git push origin master 推送遠(yuǎn)程分支,就是把該分支上的所有本地提交推送到遠(yuǎn)程庫(kù)
    git pull 從遠(yuǎn)程庫(kù)拉取
    git checkout -b <branch> origin/<branch> 創(chuàng)建遠(yuǎn)程origin的branch分支到本地
    git branch --set-upstream <branch> origin/<branch> 指定本地dev分支與遠(yuǎn)程origin/dev分支的鏈接
    git push origin --delete <branch> 刪除遠(yuǎn)程分支

分支管理

  • 創(chuàng)建分支
    git checkout -b <branch> 創(chuàng)建分支并切換過去,相當(dāng)于執(zhí)行了 git branch <branch>git checkout <branch>
    git branch 查看當(dāng)前分支
    git checkout <branch> 切換分支
    git merge <branch> 合并分支到當(dāng)前分支,有沖突修改后再add、commit
    git merge --no-ff -m "合并信息" <branch> 禁止快速合并
    git branch -d <branch> 刪除分支
    git branch -D <branch> 強(qiáng)行刪除分支(未合并的分支)
  • BUG分支
    git stash 把當(dāng)前工作現(xiàn)場(chǎng)“儲(chǔ)藏”起來,等以后恢復(fù)現(xiàn)場(chǎng)后繼續(xù)工作
    git stash list 查看stash
    git stash apply 恢復(fù)現(xiàn)場(chǎng)
    git stash drop 刪除保存的stash
    git stash pop 恢復(fù)并刪除stash
    git stash apply stash@{0} 多次stash,恢復(fù)指定的stash

標(biāo)簽管理

  • 創(chuàng)建標(biāo)簽
    git tag <name> 創(chuàng)建標(biāo)簽
    git tag 查看所有標(biāo)簽
    git tag <name> <commit> 在指定的版本版本id打標(biāo)簽
    git show <name> 查看標(biāo)簽信息
    git tag -a <name> -m "說明" <commit> 創(chuàng)建帶有說明的標(biāo)簽
  • 操作標(biāo)簽
    git tag -d <name> 刪除標(biāo)簽
    git push origin <name> 推送某個(gè)標(biāo)簽到遠(yuǎn)程倉(cāng)庫(kù)
    git push origin --tags 一次性推送全部尚未推送到遠(yuǎn)程的本地標(biāo)簽
    git push origin :refs/tags/<name> 刪除遠(yuǎn)程標(biāo)簽(刪除遠(yuǎn)程標(biāo)簽之前要先刪除本地標(biāo)簽)
?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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