Git 操作备忘

Git 操作备忘

特别推荐:https://dev.to/lydiahallie/cs-visualized-useful-git-commands-37p1

git批量移除文件

  • git rm *.suo 移除一类文件;

设置Git的user name和email:

$ git config —global user.name “norman.zheng”
$ git config —global user.email “norman.zheng@vipshop.com”

生成SSH

  • 查看是否已经有SSH密钥了:cd ~/.ssh用此命令进入后ls查看,如果有则备份删除。
  • 生成命令
$ ssh-keygen -t rsa -C “norman.zheng@vipshop.com”
  • 然后按三个回车,密码设置为空。最后生成了两个文件id_rsaid_rsa.pub
    vi命令编辑模式查看公钥,并复制.pub文件,粘贴到gitlab里即可

添加密钥到ssh

  • ssh-add 文件名
    需要之前输入密码。
  • 在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥。

变基

  • git rebase 会将当前分支的提交复制到指定的分支之上。
  • 变基与合并有一个重大的区别:Git 不会尝试确定要保留或不保留哪些文件。我们执行 rebase 的分支总是含有我们想要保留的最新近的修改!这样我们不会遇到任何合并冲突,而且可以保留一个漂亮的、线性的 Git 历史记录。

交互式变基。在我们正在 rebase -i HEAD~xx 的提交上,我们可以执行以下 6 个动作:

  • reword:修改提交信息;
  • edit:修改此提交;
  • squash:将提交融合到前一个提交中;
  • fixup:将提交融合到前一个提交中,不保留该提交的日志消息;
  • exec:在每个提交上运行我们想要 rebase 的命令;
  • drop:移除该提交。

软重置git reset --soft HEAD~xx保留变动,回滚到某个commit

还原(Reverting)另一种撤销修改的方法是执行 git revert。通过对特定的提交执行还原操作,我们会创建一个包含已还原修改的新提交。git revert xxxx撤销commitId的变动。并直接生成一个新的commitID(merge后的)

拣选(Cherry-picking)当一个特定分支包含我们的活动分支需要的某个提交时,我们对那个提交执行 cherry-pick!对一个提交执行 cherry-pick 时,我们会在活动分支上创建一个新的提交,其中包含由拣选出来的提交所引入的修改。

通过在这个远程分支上执行 git fetch,我们就可在本地获取这些修改。这不会以任何方式影响你的本地分支:fetch 只是单纯地下载新的数据而已。

尽管 git fetch 可用于获取某个分支的远程信息,但我们也可以执行 git pull。git pull 实际上是两个命令合成了一个:git fetch 和 git merge。当我们从来源拉取修改时,我们首先是像 git fetch 那样取回所有数据,然后最新的修改会自动合并到本地分支中。

git reflog 是一个非常有用的命令,可以展示已经执行过的所有动作的日志。包括合并、重置、还原,基本上包含你对你的分支所做的任何修改。

原文地址:https://www.cnblogs.com/fuunnyy/p/12849152.html