【常用的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,提示成功即可。

相关推荐
flow_code6 小时前
切换git账户
git
春生野草10 小时前
Gituee
git·gitee
222you10 小时前
Git推送本地仓库到远程
git
小贾要学习12 小时前
如何在Linux操作系统环境下使用git命令提交文件到远程仓库
linux·运维·git
J2虾虾12 小时前
WebStorm的项目绑定Git并上传到gitee
git·gitee·webstorm
虾说羊12 小时前
git分支管理介绍和stash命令
git
71-314 小时前
git 和 tortoisegit的快速使用教学(上传至gitee或GitHub)
git·gitee
唐青枫19 小时前
为什么 .gitignore 不生效?其实你忘了用 git rm --cached!
git
代码or搬砖2 天前
Git学习笔记(三)
笔记·git·学习
虾说羊2 天前
git连接远程仓库并拉去推送以及克隆命令
git