Open XinChou16 opened 5 years ago
使当前的更改基于远程最新分支
方法一:
git fetch origin
git rebase origin/master
git push
方法二:
git fetch origin
git merge origin/master
git push
等同于
git pull; git push
注:
git pull
为 git fetch
和 git merge
简写git pull --rebase
为 git fetch
和 git rebase
的简写简化版本
核心命令
git pull --rebase
git push
遇到冲突:
git add README.md
git commit
git pull --rebase
git add README.md 解决冲突
git rebase --continue
git push
核心命令
git fetch
git rebase
git push
git shortlog
git shortlog -s
git shortlog -n
git shortlog -c
Git 分支
长期分支(常驻分支)
master
线上版本分支(production)develop
日常开发分支,从 master 创建(development)短期分支(活动分支,需要定期删除)
feature/*
功能分支,从 develop 创建,需要合并到 develop 分支release/*
测试分支,提交测试人员测试的bugfix/*
bug 修复分支hotfix/*
紧急 bug 修复分支,需合并到 develop 和 master 分支常用command
常用提交
git pull origin master
稳妥的方式,提交前先执行这条,本地代码更新为最新状态git add .
文件放入暂存区git commit -am "commit msg"
更新说明git remote -v
查看远程主机网址git status
查看状态,出错时使用,查看发生变动的文件信息git reset --hard hash#
回滚到指定分支,改变HEAD指向,慎用操作回退
git checkout --<name>
丢弃工作区更改的代码git reset HEAD
丢弃添加到暂存区的代码git reset --hard <hash>
丢弃添加到本地仓库的代码git revert <commitId>
回滚到指定commit节点git rebase
合并分支,但会重写历史commitgit各种后悔
git分支管理
git rebase
git 配置与帮助
--local
默认,高优先级:只影响本仓库(.git/config)--global
中优先级:影响到所有当前用户的 git 仓库(~/.gitconfig)--system
低优先级:影响到全系统的 git 仓库git <command> -h
git 状态
工作目录、暂存区、提交区
未跟踪、已跟踪
git status
:获取文件状态git diff
:对比文件状态(默认显示工作目录与暂存区的差异)各种区
git add README.md
:添加指定文件到暂存区(同时文件被跟踪)git add .
:添加所有文件(注意添加.gitignore
,仅作用于未跟踪的文件)git checkout --file.name
:将文件内容从暂存区回退到工作区git commit -m "commit msg"
:从暂存区到提交区git reset HEAD <FILE>
:将文件内容从提交区恢复到暂存区git commit -a -m "commit msg"
:从工作区直接到提交区git checkout HEAD --<FILE>
:将内容从上次提交恢复到工作区git rm --cached
:仅从暂存区删除git rm
:从暂存区域工作区同时删除git rm $(git ls-files --deleted)
:删除所有被跟踪git stash list
:查看暂存git stash
:不指定暂存名git stash save <name>
:指定此次的暂存名git stash apply
:应用最新的暂存git stash apply stash@{0}
:应用指定暂存git stash drop stash@{0}
:删除指定暂存git pop
: 应用并删除暂存分支操作
git branch
git branch -h
:分支命令git branch <name>
:创建分支git branch
查看所有分支git branch -v
:查看所有分支及其最新提交信息git branch -d <name>
删除已经合并的分支git branch -D <name>
删除未合并的分支git checkout
git checkout -b <name>
创建分支同时切换到该分支上git checkout <name>
切换分支git checkout master git merge <name>
合并分支git reset
分支回退git reset --mixed <commit>
:(默认),重置 HEAD 和 indexgit reset --soft <commit>
:仅重置 HEADgit reset --hard <commit>
:重置 HEAD,index 和工作区git reset HEAD~1
:回退到上一个版本git revert HEAD
:回退到上一个版本reset VS commit
git merge
合并git merge --abort
合并遇到冲突,取消合并git push origin <name>
推送分支git rebase
git rebase master
:基于master 变基标签
git tag <name> <commitId>
:设置标签git checkout <tagName>
:提交复制
git cherry-pick C2 C4
:将提交记录的C2、C4复制到master分支上提交移动
git rebase -i HEAD~4
:移动提交记录Scene
git pull
git fetch git merge origin/master
a). 克隆仓库
git clone
b). 更新远程git fakeTeamwork
c). 更新本地git commit
d). 拉去远程git pull --rebase
e). 推送本地到远程git push
git fetch
git rebase origin/master
git push
或
git fetch
git merge origin/master
git push
或(文件添加到提交区,origin分支有更新)
git pull --rebase
git push
git checkout C0
git push origin master
git push origin foo
git push origin bar
命令:
git push origin <source>:<description>
git push origin foo^:master
git push origin master:newBranch
:提交的分支不存在会创建该分支git fetch
:默认会下载所有的提交记录到各个远程分支git push origin :foo
:慎用git fetch origin :bar
:fetch 空Reference