【常用的git命令】

(一)操作分支

powershell 复制代码
# 1、操作本地分支
# 基于 master 分支新建一个名为 dev 的分支
git checkout -b dev
git switch -c dev
# 查看当前所在的分支,不用命令就可以看到当前在哪一个分支上
git branch
# 查看每个分支跟踪的远程分支
git branch -vv
# 删除某个分支
git branch -d dev_srq
# 分支改名
git branch -m <old_branch_name> <new_branch_name>
# 切换分支
git checkout xxx
git switch xxx
# 2、本地分支与远程origin之间的操作
# 显示与当前分支关联的远程分支信息
git remote show origin
# 更新远程信息
git switch xxx
git pull origin xxx:xxx

# 3、本地分支与远程backend之间的操作

# 4、修改分支名字
git branch -m dev dev_rename
# 将当前分支与指定仓库的制定分支建立关联
git branch --set-upstream-to=ssh://git@xxx.git bbbbbbb

(二)pull拉取

powershell 复制代码
# 从远程仓库origin上更新特定的分支
git pull origin br_xxx
# 使用远程分支更新本地分支
git pull origin br_xxx:br_xxx

(三)push推送

powershell 复制代码
git push backend dev
# 删除远程仓库backend里的br_dev分支
git push backend --delete br_dev

(四)版本回退

powershell 复制代码
git reset HEAD^ --soft
##  --soft 选项表示撤销更改后,保留更改的代码。如果不加这个选项,那么撤销更改后,更改的代码会被删除。
# 将当前修改的文件都重置为没有修改的状态,谨慎使用
git restore <fileName>
git restore .
# 回退到指定版本
git reset --hard a97ad6b577cc7172a78d6bf0299c5e53d0f4de68
git reset --soft a97ad6b577cc7172a78d6bf0299c5e53d0f4de68
# 丢弃当前的所有更改
git reset HEAD --hard 
# 从工作目录中删除某些文件,并且不想将这些更改提交到git。-f选项强制删除未跟踪的文件
git clean -f test/public/base/DatabaseTest.cpp

(五)仓库

powershell 复制代码
# 添加新的远程仓库
git remote add backend ssh://git@aaa.com:xxx/backend.git
# 查看所有已添加的远程仓库
git remote -v
# 删除远程仓库
git remote rm backend

(六)配置

powershell 复制代码
# 设置用户名、密码
git config --global user.name sstone
git config --global user.email aaa@bbb.com
# 查看用户名、密码
git config user.name
git config user.email

(七)操作文件

powershell 复制代码
# 1.删除本地文件并从Git仓库中删除
git rm <文件路径>
# 2.从Git仓库中删除文件,但保留本地文件
git rm --cached .gitignore
# 3.删除add到仓库的所有文件
# 4.恢复特定文件或整个工作目录到最近一次提交的状态
git checkout -- <file>
git checkout .
# Git 2.23.0 版本引入的一个新命令
git restore --staged xxx.cpp # 将暂存区的文件恢复到未暂存状态,同时保留工作目录中的修改
git restore xxx.cpp # 撤销工作目录中的对该文件的修改

(八)暂存当前更改

powershell 复制代码
# 将当前更改保存到当前分支
git stash
# 查看当前的的stash列表
$ git stash list
stash@{0}: WIP on br_aaa: b0f70bc59 merge debug into master
stash@{1}: WIP on br_bbb: 4a478925a merge maindtsmater into master
stash@{2}: WIP on br_ccc: 616d077e7 merge DISC36134 into master
# 取出指定的stash,并出栈
git stash pop stash@{1}
git stash apply stash@{1}
# 删除特定的stash
git stash drop stash@{0}
# 删除所有的stash
git stash clear
# 检查stash内容
git stash show stash@{n}

(九)合并最近的几个提交

powershell 复制代码
# 1)打开交互式rebase,列出最新的4个提交
git rebase -i HEAD~4
# 2)修改提交方式,将第一个提交前的动词保留为 pick,将接下来的三个提交前的动词改为 squash,
pick abcdef1 提交信息1
squash 1234567 提交信息2
squash 789abcd 提交信息3
squash ef01234 提交信息4
# 3)保存退出
# 4)修改提交信息,保存退出
# 场景:将src分支上的关于7777的几个commit合入到目标分支dest上
# 已知,几次commit的值是2fa91、52def、acdb7
git switch dest
git cherry-pick 2fa91 52def acdb7 # 处理冲突
git rebase -i HEAD~3
git push

Cherry-pick时冲突了

首先明确是手动处理冲突

master分支里合入的commit id:32045b9bf33603d3f6d7b67c52907c7de9262490

欲将其合入到br_dev分支

参考处理链接:https://blog.csdn.net/weixin_42623551/article/details/123372630

主要逻辑是:

查看提交的commit id

在分支master上打开git bash,然后git checkout br_dev,然后git cherry-pick 32045,此时会提示成功或者失败。可以看到有冲突的文件

解决冲突,使用vscode打开代码,找到冲突的代码,手动修改。

使用git add .添加,之后git cherry-pick --continue,提示成功即可。

相关推荐
先跑起来再说4 小时前
Git 入门到实战:一篇搞懂安装、命令、远程仓库与 IDEA 集成
ide·git·后端·elasticsearch·golang·intellij-idea
承渊政道7 小时前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
Doro再努力7 小时前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim
摇滚侠10 小时前
MAC IDEA GIT 提交区显示了几个不存在的目录
git·idea
城东10 小时前
Git使用[远程仓库远端的head比本地和提交的head旧,其他人拉不到最新代码]
git·head·远程仓库远端·比本地和提交的head旧·其他人拉不到最新代码
何中应19 小时前
使用SSH地址拉取远程仓库代码报下面的错误
git
何中应19 小时前
Git本地仓库命令补充
git
sun00770021 小时前
执行repo sync -c -d -j4以后,提交未git push的代码看不到了。要怎么恢复?
git
胖虎11 天前
Git 一个本地仓库同时推送到两个远程仓库(详细教程)
git·多远程仓库·双远程仓库·git双远程·git备份
春日见1 天前
如何创建一个PR
运维·开发语言·windows·git·docker·容器