..

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