工作常用git命令

本文提供了关于Git的一系列操作技巧,包括在拉取大项目前先删除多余分支以加快速度,使用cherry-pick选择性应用commit,以及如何安全地进行rebase和撤销操作。还讨论了强制拉取、合并commit、根据tag创建分支、解决冲突和管理未跟踪的本地修改等情境下的Git命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tips:

  • git pull大项目之前,git fetch -p把多余分支删掉,可以拉得快一点

【已测】cherry-pick

【谨慎使用】

  1. git cherry-pick commit_id
  2. 多个commit:git cherry-pick commit_id1 commit_id2
  3. 有冲突时解决了,add后git cherry-pick --continue
  4. push

头指针分离

【已测】git 强制拉取并覆盖本地文件

  1. 需要将这些更新取回本地,这时就要用到git fetch命令,git fetch --all
  2. 撤销本地、暂存区、版本库(用远程服务器的origin/develop替换本地),git reset --hard origin/develop
  3. git pull 来从远程仓库develop分支拉取同步代码,git pull origin develop

撤销commit

git reset HEAD^
git status
git add .
git commit -m ""
git push --force origin HEAD

【已测】rebase

为了将 develop 分支上最新的代码 rebase 到 myFeat 分支,可以:

  • 切换到 develop 分支,git pull origin develop;
  • 切回到 myFeat 分支,git rebase develop。

来回切换分支有点繁琐,其实可以不切换分支,一句命令搞定这个需求:
git pull --rebase origin develop(然后立马git push origin HEAD -f)

【已测】rebase分支到分支(包括push):(注意把feature改为自己的分支名)

解决git rebase操作后推送远端分支不成功的问题

  • feature分支只有你一个人在开发
    git push --force origin HEAD
    此时没有其他人会进行提交操作,那么可以直接进行强制推送 git push --force origin feature ,–force可以直接理解为用你本地分支的状态区覆盖掉远端origin分支的状态,也就是执行过后,本地的分支什么样,远端分支就什么样

  • feature分支有多人开发
    此时如果你贸然的使用–force命令,会有覆盖掉其他人提交代码的风险。比如,小明和小红两个人同时在feature分支上进行开发,小明已经在feature分支上提交了一部分代码,而小红此时执行了rebase操作,所以如果想要推送到远端仓库就必须使用 - -force 参数,而小红推送成功之后就会覆盖掉小明提交的代码(前面说过–force就是用本地状态覆盖掉远端状态)。在这种情况下,推荐另外一种更安全的命令 git push --force-with-lease origin feature 使用该命令在强制覆盖前会进行一次检查如果其他人在该分支上有提交会有一个警告,此时可以避免福改代码的风险。

  • 中途退出rebase:git rebase —abort

【已测】error: 您需要先解决当前索引的冲突

代码管理平台:github

【已测】删除远程分支和本地分支

删除远程分支和本地分支
远程:git push origin --delete branch_name
本地:git branch -d branch_name
// 如果删除不了,执行强制删除命令:
git branch -D branch_name

【已测】git从某个分支创建新分支

git从某个分支创建新分支

git合并commit为一个

revert

revert

撤销revert/commit/rebase

【已测】git amend

只修改commit信息或内容,合并为同一个commit。https://blog.youkuaiyun.com/zbsmx/article/details/121648553
git add .
git commit --amend -m “new message”
git commit --amend --no-edit
然后再push就行:git push --force origin HEAD(个人开发的分支用这个

git 如何取消add操作

这里仅取消提交到库存区这个动作,只撤消动作,修改的文件不变
可以直接使用命令
git reset HEAD
这个是整体回到上次一次操作
绿字变红字(撤销add)

【已测】git 根据tag创建分支

git 根据tag创建分支

Git - 执行git pull 一直报错 error: cannot lock ref

执行git pull 一直报错 error: cannot lock ref
解决办法:
git remote prune origin
git pull origin master

git 丢弃未跟踪的本地修改

git 丢弃未跟踪的本地修改

GIT 如何 CHECKOUT 某個TAG

從Stack overflow來的答案:
先利用 git clone 抓取整個repository
再利用 git tag -l 列出全部的tag清單
最後用 git checkout <tag_name>

重命名文件(git对大小写不敏感)

在Git存储库中,如何正确重命名目录?

git stash

做完操作记得快点git stash pop
git stash needs merge,可能是因为有已经add的文件,git restore --staged .后可急需stash

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值