Git 常用操作
1. Common Opt
$ git config --global -l //查看本地配置 $ git config --global user.name jack张三 //设置用户名 $ git config --global user.email jack@test.com //设置邮箱 $ git checkout -b test_branch //新建分支并切换到新分支 $ git branch -la $ git status $ git pull //把最新版本拉取到本地 $ git add xxxx $ git commit / git commit -a //直接从working区到Local Resp $ git commit --amend // 修改最近一次提交的提交信息 $ git push $ git reset --hard $ git reset 91d14df62cd6b2f89376f3c5fb9d855c46ab636a $ git log $ git log --pretty=oneline //查看当前分支的提交历史 里面包含 commit id $ git diff $ git chechout file 相当于SVN的revert,使用仓库版本替换此文件 $ git checkout -- <file$ 放弃本地文件修改(Working Directory) $ git reset Head [path] undo git add (git rm --cached FILE) $ git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。 $ git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。 $ git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。 $ git stash clear: 清空Git栈 $ git stash apply stash@{1}:就可以将你指定版本号为stash@{1}的工作取出来 $ git branch -m <old_branch_name$ <new_branch_name$ 本地分支重命名 $ git restore --staged <file$ 将文件从暂存区撤出,但不会撤销文件的更改 $ git resore 将不在暂存区的文件撤销更改 // cherry-pick
$ git cherry-pick <commitHash> 将指定的提交 commitHash ,应用于当前分支
$ git cherry-pick <HashA> <HashB> 将 A 和 B 两个提交应用到当前分支
$ git cherry-pick A..B 转移从 A 到 B 的所有提交。它们必须按照正确的顺序放置:提交 A 必须早于提交 B,否则命令将失败,但不会报错。注意:使用上面的命令,提交 A 将不会包含在 Cherry pick 中
/* git checkout master git pull origin master #切换回默认分支,并将默认分支和中央最新版本合并 git merge sdc #在本地合并你的这次修改到默认分支 git push origin master #提交到中央版本库,接下来还是要切换回工作分支的 git checkout sdc --force git push [远程名] [本地分支]:[远程分支] -- mvn versions:set -DnewVersion=1.9.8 */
2. 删除分支
(a) 删除远程分支 $ git push origin :<BranchName> $ git push origin --delete <BranchName> (b) 删除本地分支, 强制删除用-D $ git branch -d <BranchName> (c) 本地分支重命名 $ git branch -m <old_branch_name> <new_branch_name> (d) 强制分支指向某个commitid $ git branch -f main HEAD~3 //main分支指向HEAD的上3个父节点位置 $ git branch -f main C4 //main分支指向C4位置
3. 版本回退
(a) git本地版本回退 git reset --hard commit_id // 退到/进到 指定commit的sha码, 可用 git log –oneline 查看 git reset --hard HEAD^ // 回退到上个版本 git reset --hard HEAD~2 // 回退到前2次提交之前,以此类推,回退到n次提交之前 (b) git远程版本回退 git push origin HEAD --force // 远程提交回退 (c) git revert HEAD //撤销HEAD指向的commit (一般远程共用分支代码时使用)
4. tag标签使用
[1] 创建tag $ git tag <tagName> //创建本地tag $ git tag -a <tagName> <commitId> //以某一个特定的提交为tag $ git push origin <tagName> //推送到远程仓库 $ git push origin --tags //若存在很多未推送的本地标签,你想一次全部推送的话 [2] 查看标签 $ git show <tagName> //查看本地某个 tag 的详细信息 $ git tag 或者 git tag -l //查看本地所有tag $ git ls-remote --tags origin //查看远程所有tag [3] 删除标签 $ git tag -d <tagName> //本地tag的删除 $ git push origin :<tagName> //远程tag的删除 [4] 检出标签 $ git checkout -b <branchName> <tagName> //类似根据commit id 检出分支
5. git rebase 常规操作流程
假设Git目前只有一个分支master。开发人员的工作流程是:
- git clone master branch
- 在自己本地checkout -b local创建一个本地开发分支
- 在本地的开发分支上开发和测试
- 阶段性开发完成后(包含功能代码和单元测试),可以准备提交代码
- 首先切换到master分支,git pull拉取最新的分支状态
- 然后切回local分支
- 通过git rebase -i 将本地的多次提交合并为一个,以简化提交历史。本地有多个提交时,如果不进行这一步,在git rebase master时会多次解决冲突(最坏情况下,每一个提交都会相应解决一个冲突)
- git rebase master 将master最新的分支同步到本地,这个过程可能需要手动解决冲突(如果进行了上一步的话,只用解决一次冲突)
- 然后切换到master分支,git merge将本地的local分支内容合并到master分支
- git push将master分支的提交上传
本地开发分支可以灵活管理
git checkout master git pull git checkout local git rebase -i HEAD~2 //合并提交最近2个commit
// 或者 git rebase -i commitId // 这里的commitId 指的是合并这几次的前一项提交ID (注:不包含 commitId 这一个本身) git rebase master --> 解决冲突 --> git rebase --continue git checkout master git merge local git push
6. 其他
- 分支练习:https://learngitbranching.js.org
转自:
https://blog.csdn.net/nrsc272420199/article/details/85555911
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现