git常用命令备忘

2018-06-24 02:04:08来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

一.分支相关

1.基本命令

# 列出所有本地分支
$ 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"

$git stash list

$git stash apply stash@{3}


 

二、各种情况处理
#.放弃某个分支还没提交的所有修改
$ 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' ' ') 
 
 
 
 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:自定义事件兼容处理对象

下一篇:JavaScript之闭包