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

posted @   ck_2016  Views(45)  Comments(0Edit  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 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 中的实现
点击右上角即可分享
微信分享提示