Git常用命令速查表
配置用户名邮箱
|
|
配置別名
|
|
删除本地分支
|
|
删除远程分支
|
|
上面只是删除本地对应远程分支的track, 正确做法
冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支
重命名本地分支
|
|
git重命名远程分支=先删除远程分支,然后重命名本地分支,再推送
新建分支
本地新创建了一个local_br 需要推送到远程的 remote_br分支上 (冒号前后不要加空格)
删除本地远程分支缓存
有时候远程分支跟本地对应分支已经删除, 但是 git branch -r 命令还是查看到之前已经追踪的远程分支, 如下:
|
|
此时可以使用 git remote prune origin 来删除无用的分支追踪
也可使用 git fetch -p 命令
cherry-pick
在常规开发过程中,经常会遇到这样的问题,dev作为新功能提交分支,每天都有提交代码;而master作为稳定版本分支,可能一个月才提交一次,这样就会遇到dev的很多功能性代码部分合入master的需求,此时为使用cherry-pick的绝佳时机, commit_id为dev分支上提交的commit id
查看代码库地址
|
|
新建仓库
如果想保留仓库原有的文件夹名字
如果想起一个新的名字
添加远程库
如果现在已经本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步;首先先在git上建立一个空的仓库jingtalk;然后可以将本地的仓库与jingtalk关联;
第一次推送master分支时,使用-u参数,Git把本地的master分支推送的远程新的master分支,同时把本地的master分支和远程的master分支关联起来,以后只需要下面命令来推送最新修改
commit撤销
|
|
在Git中,用HEAD表示当前版本, 上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
线上版本回退
如果你的错误提交已经推送到自己的远程分支了,那么就需要回滚远程分支了。
首先要回退本地分支:
紧接着强制推送到远程分支:
注意:本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支
git reflog
可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录
暂存修改
|
|
查看提交记录
|
|
删除git远程库中的文件
|
|
.gitignore规则
|
|
有时候在项目开发过程中,突然心血来潮想把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
SSH权限
通过命令生成两个文件 id_rsa 和 id_rsa.pub ,而 id_rsa 是密钥,id_rsa.pub 就是公钥,将后者添加到github、coding.net相应的设置中即可通过ssh方式拉取代码(不用再输入用户名和密码)
Mac系统下的.ssh文件位于/Users/用户名/.ssh下面
Error问题
refusing
git push origin master的时候,有时会报下面的错误
使用 --allow-unrelated-histories
处理,如下