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 将不在暂存区的文件撤销更改

/*
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    // 远程提交回退

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 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

原文地址:https://www.cnblogs.com/ylz8401/p/15666137.html