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

相关推荐
正经教主1 小时前
【Git】Git04:分支管理
git
海域云赵从友8 小时前
2025年印尼服务器选型指南:跨境业务落地的合规与性能双解
人工智能·git·github
不会写代码的里奇9 小时前
VMware Ubuntu 22.04 NAT模式下配置GitHub SSH完整教程(含踩坑实录+报错_成功信息对照)
linux·经验分享·笔记·git·ubuntu·ssh·github
木子杳衫12 小时前
【Git】处理报错原因
git
SHIPKING39312 小时前
【Git】2025全图文详解安装教程
git
无限进步_13 小时前
C语言atoi函数实现详解:从基础到优化
c语言·开发语言·c++·git·后端·github·visual studio
地球没有花1 天前
gitlab cicd首次操作
运维·git·ci/cd·gitlab
无限进步_2 天前
【C语言】贪吃蛇游戏设计思路深度解析:从零开始理解每个模块
c语言·开发语言·c++·git·游戏·github·visual studio
达子6662 天前
git使用应用实战大全
git
P***25392 天前
Git教程
git