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

相关推荐
没有鸡汤吃不下饭3 小时前
Git将某个分支合并到开发(dev)、测试(test)后突然想撤销该分支的功能,怎么处理?
前端·git·github
康一夏4 小时前
git fatal:Server aborted the SSL handshake
git·网络协议·ssl
Vio72519 小时前
在IntelliJ IDEA中使用Git
git
Net_Walke20 小时前
git 的常用命令
git·物联网·github·iot
L X..1 天前
Git 无法访问 GitHub(Recv failure: Connection was reset)问题解决教程
git·github
建群新人小猿1 天前
客户标签自动管理:标签自动化运营,画像持久保鲜
android·java·大数据·前端·git
来一颗砂糖橘1 天前
Git 进阶指南:深入掌握 git log 查看提交历史
git·版本控制·开发技巧
六点半8882 天前
【Git】远程操作 + 给命令配置别名 + 标签管理
git
虫师c2 天前
GitOps实战:ArgoCD+Tekton打造云原生CI/CD流水线
git·ci/cd·云原生·kubernetes·argocd·tekton