常用的Git便捷操作合集

 更新时间:2022年09月27日 09:37:23   作者:carverZhong  
虽然现在有很多图形化的?Git?工具,但是命令行依然?yyds。本文记录了工作中很有用的一些?Git?操作,感兴趣的小伙伴可以跟随小编一起了解一下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

1.Fork出来的Git仓库同步代码

背景:有的时候从原仓库fork出了一个新仓库,这个新仓库做了自己的修改。可是原仓库也进行了更新,比如修复了bug,增加了新特性之类的。这个时候想要把原仓库代码同步过来。

原理:把原仓库的代码拉到本地,然后通过git merge把原仓库分支代码合到自己的分支代码。

1.先拉取原仓库代码到本地

git remote add upstream (填写你仓库git地址)

git fetch upstream

这样就把原仓库代码拉到本地了,而且 upstream 跟原仓库进行了绑定。(类似origin的绑定,upstream 也可以命名为其它的名称)

此时执行git remote,会看到有两个:

origin
remote

2.合并分支

切换到fork仓库的分支,可以新建一个合并分支。然后执行命令:

# 分支名不一定得是master,也可以是其它的原仓库分支。
git merge upstream/master 

如果有冲突就要解决冲突,解决完执行下命令即可:

git merge --continue

最后,如果完成了,可以执行命令移除这个绑定。

git remote remove upstream

2.合并多个提交

完成一小部分功能进行提交是一个良好的习惯,有利于我们随时回溯代码。然而整体功能没完成是不能提交到主干的,而且也倾向于整体功能完成合并为一个提交。因此本地的多个小提交合并成一个提交就很有必要了。下面举个栗子演示合并操作。

执行git log,查看历史提交:

commit 03c72b6dfc24c6bf6f60e2c922552249cc3e5376

git test 3

commit 24276fbd0495c4b337f4058726a48e68118eac0a

git test 2

commit 9f92d8624a3adf7cd6fb69268f99d864390838c4

git test 1

假设要将前两笔提交合并,则记录下第三笔的commitId:9f92d8624a3adf7cd6fb69268f99d864390838c4。(第三笔提交不参与合并)

执行以下命令:

git rebase -i 9f92d8624a3adf7cd6fb69268f99d864390838c4

执行后会弹出以下:

pick 24276fbd git test 2

pick 03c72b6d git test 3

# 省略以下内容

此时要将除第一个外的pick改为squash或者s。即改完后为:

pick 24276fbd git test 2

s 03c72b6d git test 3

# 省略以下内容

改完保存退出,会弹出commit message修改界面,修改保存即可。

再执行git log发现提交已经合并了。

commit 980d318f91f2faa1d748ae5a963b692162dd521c

git test merge


commit 9f92d8624a3adf7cd6fb69268f99d864390838c4

git test 1

3.代码回退

1、在工作区的代码

# 丢弃某个文件
git checkout -- 文件名

# 丢弃全部
git checkout -- .

2、git add到了索引区

# 回退索引区所有文件
git reset HEAD .

# 回退索引区指定文件夹
git reset HEAD 文件夹名

3、commit 到本地分支的代码

# 回退最新一笔提交
git reset --hard HEAD^

# 回退到指定的版本
git reset --hard 版本号

这里说下reset时,指定--hard、--soft、--mixed的区别:

  • hard: 回退时HEAD指针被回退,索引区、工作目录都被重置了。
  • soft: 只改变了历史提交(HEAD指针),索引区和工作目录没有更改。
  • mixed: 不指定时默认为mixed,改变了历史提交(HEAD指针),重置了索引区。

4.使用worktree

当你的项目很大,而有多个特性需要开发时,为了避免频繁切换分支,可以使用git worktree

git worktree非常适合大型项目又需要维护多个分支,想要避免来回切换的场景。其有以下几个优点:

  • 单独 clone 项目相比,节省了硬盘空间,又因为 git worktree 使用 hard link 实现,要远远快于 clone
  • 提交可以在同一个项目中共享
  • 可以快速进行并行开发,同一个项目多个分支同时并行演进

git worktree使用非常简单,掌握3个命令即可:

# 添加一个 worktree。
git worktree add filePath
# 移除一个 worktree
git worktree remove filePath
# 查看目前所有的 worktree
git worktree list

创建了worktree后,只需要用IDE打开添加到filePath的项目即可。

5.其它

#本地分支与远程进行关联
git branch --set-upstream-to=origin/(要关联的分支名)

#推送本地新建分支到远端分支(远端会自动创建分支)
git push origin newbranch:originbranch

#删除远端分支
git push origin --delete (branch_name)

#查看本地分支关联的远程分支
git branch -vv

#分支重命名
git branch -m oldName newName

#修改当前项目的用户名和邮箱
git config --local user.name “userName"
git config --local user.email email@example.com

#删除本地版本库上那些失效的远程追踪分支:
git remote prune origin --dry-run

以上就是常用的Git便捷操作合集的详细内容,更多关于Git便捷操作的资料请关注程序员之家其它相关文章!

相关文章

  • 关于IDEA中Git暂存代码的使用

    关于IDEA中Git暂存代码的使用

    本文主要介绍了关于IDEA中Git暂存代码的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • i++循环与i-–循环的执行效率(递增与递减效率)

    i++循环与i-–循环的执行效率(递增与递减效率)

    i++循环与i-–循环的执行效率(递增与递减效率),需要的朋友可以参考下。
    2011-01-01
  • 详解git merge命令应用的三种情景

    详解git merge命令应用的三种情景

    这篇文章主要介绍了详解git merge命令应用的三种情景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 在VScode中创建你的代码模板的方法

    在VScode中创建你的代码模板的方法

    这篇文章主要介绍了在VScode中创建你的代码模板的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 详解idea中Git的Stash Changes和UnStash Changes用法

    详解idea中Git的Stash Changes和UnStash Changes用法

    这篇文章主要介绍了idea中Git的Stash Changes和UnStash Changes用法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 调试JavaScript/VBScript脚本程序(IE篇)

    调试JavaScript/VBScript脚本程序(IE篇)

    JavaScript/VB Script脚本程序一般有两种执行方式,一种是嵌入在宿主程序里面执行,比如在IE浏览器里面执行;另外一种,在资源管理器里面双击执行(虽然还是通过另外一个程序解释执行,但是给人的感觉毕竟是直接运行)。
    2009-09-09
  • Git获取本地分支对应的远端服务器分支名的方法

    Git获取本地分支对应的远端服务器分支名的方法

    这篇文章主要介绍了Git获取本地分支对应的远端服务器分支名的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • vscode 前端最佳配置小结

    vscode 前端最佳配置小结

    这篇文章主要介绍了vscode 前端最佳配置小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Application,Session,Cookies对象应用介绍

    Application,Session,Cookies对象应用介绍

    Application,Session,Cookies对象比较,对于客户端保存登录信息的朋友可以参考下。
    2011-05-05
  • VSCode 云同步扩展设置Settings Sync插件

    VSCode 云同步扩展设置Settings Sync插件

    这篇文章主要介绍了VSCode 云同步扩展设置Settings Sync插件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05

最新评论

?


http://www.vxiaotou.com