..
git相关操作
git分支相关操作
良好的git使用习惯是,如果我的代码已经合并到Master分之,并且测试通过,上线了,确认无误,我就可以删除之前的开发和测试分支了,git上如果有太多的无用分支,有时候会让你摸不着头脑,哪个是有用的,哪个是无用的。
- clone仓库
git clone ${repo}
- clone指定分支或者tag的仓库
git clone ${repo} --branch=${tag}|${branch}
- 提交暂存区的变更
git commit -m {mesage}
- 删除本地分支
git branch -d {branch}
- 强制删除本地分支,可能是未合并的分支
git branch -D {branch}
- 删除远程分支
git push origin --delete {branch}
- 合并目标分支到当前分支
git merge ${target}
- 取消merge代码
git merge --abort
tag操作
- 查看当前tag列表
git tag -l 或者 git tag --list
- 创建tag
git tag -a {tag} -m {comment}
- 推送tag到remote
git push {remote} {tag}
- 删除本地tag
git tag -d {tag}
- 删除远程tag
git push {reomte} --delete {tag}
文件操作
- 跟踪文件或者将文件加入到暂存区
// 文件名字支持通配符
git add {file}
- 从暂存区移除某文件
git reset head file
- 取消工作区域文件的修改,也可以用来恢复误删除的文件
git checkout {filename}
- 从git仓删除某个文件
git rm {file}
ssh配置
每次输入账户名和密码实在太麻烦了,给github账户配置一个全局的ssh秘钥就不用那么麻烦了,操作也很简单:
- 生成秘钥,ssh-keygen -t rsa,这里有个注意事项,一般格式秘钥都是会在当前目录下生成,所以最好到~/.ssh/这个目录来执行命令
- 秘钥生成了以后,把你的公钥复制到github,settings -> ssh and gpg keys -> new sshkey (title可以安装你喜欢的填写)
一般情况下,这样就够了,但是如果你在生成秘钥的时候给定了秘钥文件的名字,也不是默认的名字,那么你可能还需要配置一下,因为git并不知道你使用哪个秘钥来进行认证,也许还有很多其他的秘钥文件,这里配置也比较简单,比如说我的秘钥文件是github开头的吧,那么就就需要在~/.ssh/config文件中加入一下内容:
host github.com
HostName github.com
IdentityFile ~/.ssh/github
User git
然后就大功告成了。
2018年09月16添加
- 重新提交,再次编写message或者添加文件到暂存区
git commit --amend
2018年10月12添加
- 强制删除未合并的分支
git branch -d -f {branch}
-D
也能强制删除未合并的分之
git branch -D {branch}
2018年11月20添加
需要将当前分支回滚到某次提交的状态,工作空间也会被回滚,如果只会回滚git的指针,那么不要加--hard
选项。
git reset {hash} --hard
可以取消提交,将变更加入到暂存区
git reset {hash} --soft
以上几个命令的区别:
- git reset –hard 回滚当前HEAD到某次提交,并且工作空间中的内容与git本地分支中保持一致
- git reset –soft 回滚当前分支到某次提交,被悬挂的会被加入到暂存空间中
- git reset –mixed 回滚当分支的HEAD到某次提交,被悬挂的提交会被保存在当前的工作空间中,如果冲突,会以工作空间中的内容为主
2018年01月29添加
将A分支的某个文件合并到当前分支
git checkout --patch A filename
2019年03月13添加
查看某段日期之后的提交记录
git log --after="2018-01-01"
查看某个日期之前的提交记录
git log --before="2019-03013"
从某一次提交checkout出一个新的分支
git checkout 9ab0edd01af61c8e00c7e2bb0baf9dba452cfbcc
2019年07月02添加
更新 patch 补丁到当前库
git apply patch.txt
undo 刚才更新的补丁
git apply -R patch.txt
2020年08月12日添加
进入 vim 交互模式填写 tag 的信息
git tag -a v1.0.1