git經常使用命令備忘

一.分支相關git

1.基本命令bash

# 列出全部本地分支
$ git branch
 
# 列出全部遠程分支
$ git branch -r
 
# 列出全部本地分支和遠程分支
$ git branch -a
 
# 新建一個分支,但依然停留在當前分支
$ git branch [branch-name]
 
# 新建一個分支,並切換到該分支
$ git checkout -b [branch]
 
# 新建一個分支,與指定的遠程分支創建追蹤關係
$ git branch --track [branch] [remote-branch]
 
# 切換到指定分支,並更新工做區
$ git checkout [branch-name]
 
# 切換到上一個分支
$ git checkout -
 
# 創建追蹤關係,在現有分支與指定的遠程分支之間
$ git branch --set-upstream [branch] [remote-branch]
 
# 合併指定分支到當前分支
$ git merge [branch]
# 刪除分支
$ git branch -d [branch-name]
 
# 刪除遠程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
 
#拉取全部分支代碼
$ git fetch
 
#提交分支代碼
$ git push <遠程主機名> <本地分支名>:<遠程分支名>
【分支推送順序的寫法是<來源地>:<目的地>,因此git pull是<遠程分支>:<本地分支>,而git push是<本地分支>:<遠程分支>。】
 
#暫存區
 

$git stash save "name"app

$git stash listfetch

$git stash apply stash@{3}xml


 

2、各類狀況處理
#.放棄某個分支還沒提交的全部修改
$ git checkout .
 
#假如你merge的時候產生了很大的衝突,想先放棄某次merge
$ git merge --abort 或
$ git reset HEAD 或
$ git checkout HEAD

 

 
#在非目的分支上作了修改,想切換回目的分支
 
1) 還未添加到暫存區/已添加到暫存區還未提交
1.1新建臨時分支,git checkout -b new_branch,這樣改動會被帶到新分支。而後把非目的分支的修改用git checkout --恢復。
1.2先git stash,而後切換到目的分支,git checkout 【branch】,在目的分支git stash pop便可。這種方式最好理解,就是把改動先放到一個臨時區域,讓git先別管,到了正確的分支再拿出來。
 
2)已提交到本地倉庫
這種狀況就要有reset了,用git reset HEAD^撤銷最近一次提交,若是有屢次提交的話,查找到對應提交id進行reset就行。git默認的是mixed模式,即撤銷暫存區,保留工做區。這樣你再切分支也還能把改動帶過去。固然加--soft也能夠,這樣能保留暫存區和工做區。
 
3)已push到遠程倉庫
若是很不幸你已經把誤修改給push了,你須要用到revert命令,先用git log查找到你誤提交的commitId,而後git revert commitId,產生一次逆向提交,來對衝掉以前的。以後再push到遠程就能夠了。
 
 #git忽略而不提交文件
1)從未提交過的文件能夠用.gitignore
這種最簡單,直接把想忽略的文件加入gitignore中忽略提交便可
 
2)已經推送(push)過的文件,想從git遠程庫中刪除,並在之後的提交中忽略,可是卻還想在本地保留這個文件
$git rm --cached pages/index.wxml 
 
3)已經推送(push)過的文件,想在之後的提交時忽略此文件,即便本地已經修改過,並且不刪除git遠程庫中相應文件
$git update-index --assume-unchanged pages/index.wxml 
若是要忽略一個目錄,打開 git bash,cd到 目標目錄下
$git update-index --assume-unchanged $(git ls-files | tr '\n' ' ') 
相關文章
相關標籤/搜索