查看分支
- 查看本地分支:
git branch
- 查看遠(yuǎn)程分支:
git branch -r
- 查看所有分支:
git branch -a
- 創(chuàng)建本地分支:
git branch<分支名>
- 切換分支:git checkout <分支名>
- 創(chuàng)建并切換到新分支:
git checkout -b <分支名>
- 查看所屬分支 git branch -a
- 跟蹤遠(yuǎn)程分支 git push -u origin <遠(yuǎn)程分支名>
-
git branch -d <分支名>
刪除本地分支 -
git push origin --delete <分支名>
刪除遠(yuǎn)程分支 -
git reset --hard HEAD^
回退到上個(gè)版本 -
git reset --hard HEAD~3
回退到前3次提交之前,以此類推灌曙, -
git reset --hard commit_id
退到/進(jìn)到 指定commit的sha碼 -
git checkout commit ID
查看提交記錄 -
git log
查看提交記錄--pretty=oneline -
git log --pretty=oneline
查看提交記錄,只會(huì)顯示版本號(hào)和提交時(shí)的備注信息 -
git reflog
可以查看所有分支的所有操作記錄(包括已經(jīng)被刪除的 commit 記錄和 reset 的操作) -
git cherry-pick <commitid>
可以理解為”挑揀”提交,它會(huì)獲取某一個(gè)分支的單筆提交饭聚,并作為一個(gè)新的提交引入到你當(dāng)前分支上
2.git之刪除遠(yuǎn)程倉(cāng)庫(kù)文件,使用 git rm 命令即可,有兩種選擇:一種是 git rm --cached "文件路徑"滴某,不刪除物理文件午乓,僅將該文件從緩存中刪除站宗;一種是 git rm --f "文件路徑",不僅將該文件從緩存中刪除益愈,還會(huì)將物理文件刪除(不會(huì)回收到垃圾桶)梢灭。假如你有文件不小心commit到了服務(wù)器那么你想要?jiǎng)h除它,可以使用:git rm -- cached "路徑+文件名" ;git commit -m "delete file" 蒸其;git push敏释;git rm -r "路徑+文件名" ;git commit -m "delete file"摸袁;git push
本地新建分支颂暇,并切換到本地新分支,同時(shí)拉取遠(yuǎn)程分支到本地:
git checkout -b <本地分支名> origin/<遠(yuǎn)程分支名>
合并本地分支:
git merge dev
合并遠(yuǎn)程分支到本地分支:
git pull origin dev
推送到已跟蹤的遠(yuǎn)程分支:
git push
推送到固定的遠(yuǎn)程分支:
git push origin master
拉取已跟蹤的遠(yuǎn)程分支:
git pull
暫存所有:
git add <文件名>
暫存所有:
git add .
或git add *
git branch -vv
:查看本地分支和遠(yuǎn)程分支的跟蹤關(guān)系git branch -u origin/serverfix
: 設(shè)置當(dāng)前分支跟蹤遠(yuǎn)程分支origin/serverfixgit branch --set-upstream branch-name origin/branch-name
: 將branch-name分支追蹤遠(yuǎn)程分支origin/branch-namegit checkout -b develop origin/develop
:在遠(yuǎn)程分支的基礎(chǔ)上建立develop分支但惶,并且讓develop分支追蹤- - `origin/develop遠(yuǎn)程分支耳鸯。放棄所有修改文件(未暫存):
git checkout .
放棄單個(gè)修改文件(未暫存):
git checkout -- filename
刪除所有新增文件(未暫存):
git clean -xdf
刪除單個(gè)新增文件(未暫存):
rm filename / rm dir -rf
gitk --all:真實(shí)的畫出本地+遠(yuǎn)程所有分支的全部提交的樹(shù)狀結(jié)構(gòu)
取消暫存
新建遠(yuǎn)程分支,并推送本地分支到遠(yuǎn)程分支
git clone -b <指定分支名> <遠(yuǎn)程倉(cāng)庫(kù)地址>
查看遠(yuǎn)程倉(cāng)庫(kù)地址:
git remote show origin
切換遠(yuǎn)程倉(cāng)庫(kù)地址:
git remote set-url origin xxx(新的倉(cāng)庫(kù)地址)
git diff:當(dāng)工作區(qū)有改動(dòng)膀曾,臨時(shí)區(qū)為空县爬,diff的對(duì)比是“工作區(qū)與最后一次commit提交的倉(cāng)庫(kù)的共同文件”;當(dāng)工作區(qū)有改動(dòng)添谊,臨時(shí)區(qū)不為空财喳,diff對(duì)比的是“工作區(qū)與暫存區(qū)的共同文件”。
git diff <分支名1> <分支名2> :比較兩個(gè)分支上最后 commit 的內(nèi)容的差別
git rebase
git stash:
-
git stash save "message"
:保存當(dāng)前工作進(jìn)度斩狱,將工作區(qū)和暫存區(qū)恢復(fù)到修改之前耳高,message為此次進(jìn)度保存的說(shuō)明。 -
git stash list
:顯示保存的工作進(jìn)度列表所踊,編號(hào)越小代表保存進(jìn)度的時(shí)間越近泌枪。 -
git stash show
:顯示做了哪些改動(dòng),默認(rèn)show第一個(gè)存儲(chǔ),如果要顯示其他存貯秕岛,后面加stash@{$num}
碌燕,比如第二個(gè)git stash show stash@{1}
-
git stash pop stash@{num}
:恢復(fù)工作進(jìn)度到工作區(qū),并將緩存堆棧中的對(duì)應(yīng)stash刪除继薛,此命令的stash@{num}
是可選項(xiàng)修壕,在多個(gè)工作進(jìn)度中可以選擇恢復(fù),不帶此項(xiàng)則默認(rèn)恢復(fù)最近的一次進(jìn)度相當(dāng)于git stash pop stash@{0}
-
git stash apply stash@{num}
:恢復(fù)工作進(jìn)度到工作區(qū)且不會(huì)把存儲(chǔ)從存儲(chǔ)列表中刪除遏考,該工作進(jìn)度可重復(fù)恢復(fù)慈鸠,此命令的stash@{num}
是可選項(xiàng),在多個(gè)工作進(jìn)度中可以選擇恢復(fù)灌具,不帶此項(xiàng)則默認(rèn)恢復(fù)最近的一次進(jìn)度相當(dāng)于git stash apply stash@{0}
-
git stash drop stash@{num}
:刪除一條保存的工作進(jìn)度青团,此命令的stash@{num}
是可選項(xiàng)像棘,在多個(gè)工作進(jìn)度中可以選擇刪除,不帶此項(xiàng)則默認(rèn)刪除最近的一次進(jìn)度相當(dāng)于git stash drop stash@{0}
-
git stash clear
:刪除所有保存的工作進(jìn)度壶冒。
git cherry-pick
-
git cherry-pick <commitHash>
:將指定的提交commitHash缕题,應(yīng)用于當(dāng)前分支。這會(huì)在當(dāng)前分支產(chǎn)生一個(gè)新的提交 -
git cherry-pick <HashA> <HashB>
:將 A 和 B 兩個(gè)提交應(yīng)用到當(dāng)前分支胖腾。這會(huì)在當(dāng)前分支生成兩個(gè)對(duì)應(yīng)的新提交烟零。 -
git cherry-pick A..B
:轉(zhuǎn)移從 A 到 B 的所有提交,不包含A咸作。它們必須按照正確的順序放置:提交 A 必須早于提交 B锨阿,否則命令將失敗,但不會(huì)報(bào)錯(cuò)记罚。 -
git cherry-pick A^..B
:轉(zhuǎn)移從 A 到 B 的所有提交墅诡,包含A。
git reset
-
git reset HEAD
回退到當(dāng)前版本桐智,其實(shí)就是去除掉添加到暫存區(qū)的內(nèi)容末早,退回到工作區(qū) -
git reset HEAD^
回退到上個(gè)版本,把提交的內(nèi)容重新回退到工作區(qū) -
git reset <commit_id>
回退到指定版本说庭,把提交的內(nèi)容重新回退到工作區(qū)
git reset --hard
-
git reset --hard HEAD
回退到當(dāng)前版本然磷,徹底去除掉添加到暫存區(qū)的內(nèi)容,內(nèi)容不會(huì)回退到工作區(qū) -
git reset --hard HEAD^
回退到上個(gè)版本刊驴,徹底回退姿搜,內(nèi)容不會(huì)回退到工作區(qū) -
git reset --hard HEAD~3
回退到前3次提交之前,以此類推捆憎,內(nèi)容不會(huì)回退到工作區(qū) -
git reset --hard <commit_id>
退到/進(jìn)到 指定commit的sha碼舅柜,內(nèi)容不會(huì)回退到工作區(qū)