【git】常用命令

Git常用命令

查询当前分支基于哪个分支创建的

方法一:

git reflog show 分支名

方法二:

如果是 windows 系统,需要提前安装 grep

git reflog --date=local | grep 当前分支名

分支重命名

  1. 先把本地分支重命名
git branch -m 旧分支名 新分支名
  1. 删除远程分支
git push --delete origin 旧分支名
  1. 上传重命名后的本地分支
git push origin 新分支名
  1. 把修改后的本地分支与远程分支关联
git branch --set-upstream-to origin/新分支名

如果在游离分支上commit之后,如何提交到对应分支

  1. 先找到在游离分支上提交的 commitID
git reflog
  1. 再切换到对应分支上,执行以下命令
git merge ****(commitID)

本地提交的时候,多次commit可以合到同一个提交

git commit --amend -m "新的提交描述,可以覆盖上一次的"
git commit --amend --no-edit      描述继承上一次的

将多个commit合并成一个commit

  1. 先找到需要合并的 commit 的 commitID
git log
  1. 然后执行以下命令

    方法一:

    git rebase -i HEAD~n
    

    n代表的是需要合并的 commit 数量,n=2 时,表示合并前两个 commit,n=3 时,表示合并前三个 commit,依次类推。

    方法二:

    git rebase -i ****(commitID)
    

    注意:commitID 为你要合并到的记录的下一条 commit 的 commitID,例如你要合并前两个 commit,那么 commitID 就是第三条commit 的 commitID。

  2. 之后进入到 vim

    • 第一个 commit 保持pick,其他的 commit 都改成s(vim 下输入i进入编辑模式,然后Esc退出,再ctrl + :并输入wq退出 vim)
    • 然后再修改commit message,仅保留一个即可,其他的都可以注释掉或者更改掉
    • 最后git push,记住如果是已经 push 的 commit 想要合并,git push -f(利用强推,否则会提示 merge,一定要在自己的分支上搞强推)

reset 和 revert 的区别

  • reset 是将HEAD指针移动到指定的 commit,而 revert 是将指定的 commit 重新提交,并且生成一个新的 commit。
  • reset 是不可逆的,revert 是可逆的。
  • reset 只会移动 HEAD 指针,而 revert 可以移动 HEAD 指针或者是将 commit 移到其他分支。
  • reset 不会改变 commit 的任何信息,revert 会改变 commit 的任何信息。

慎用 reset(让 HEAD 重新指向某个 commit,导致中间的 commit 全部丢失,多人开发时不建议使用),多用 revert(可多条撤回,并新增 commit)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值