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