git 常用命令

场景1, 临时拉取feature branch做修改
emambp:learn emagitfetchoriginfeature/elinatestemambp:learnema git checkout -b elinatest origin/feature/elinatest

git remote update=git fetch

场景2,feature branch需要合并到master
master已经被其他同事更新了许多
目前在elinatest 分支, rebase master分支上别人的更新
git rebase master
如果很久没有更新,conflict肯定很多,需要解决conflict 然后执行git add

master维护者只需要直接根据你提的pr merge你的分支即可
git checkout master
git merge elinatest

场景3,针对feature branch 开发自己的code (分支开发)
git fetch origin feature/perf_jobs_master2mesos
git checkout -b perf_jobs_master2mesos origin/perf_jobs_master2mesos
此时 git log 看到
commit 1 lijing
balaba… 本地编写代码 过了几天 完成
git commit -a -m “comment info”
此时 git log 看到
commit 3 shaofang
commit 1 lijing
git rebase origin/feature/perf_jobs_master2mesos
此时git log 看到
commit 3 shaofang
commit 2 lijing
commit 1 lijing
然后push 本地修改到feature
git push origin HEAD:feature/perf_jobs_master2mesos
此时查看远端 repo branch发现 commit log
commit 3 shaofang
commit 2 lijing
commit 1 lijing
场景4,push代码后 查看本地 发现HEAD值为最新的commit 但FETCH_HEAD 为次新commit 所以每次开发前或者每次准备push代码前 最好fetch一下 更新一下该值(此时只是更新了指针索引 但本地的代码没有更新 只有rebase才会更新远端代码到本地) 然后 rebase的时候将根据FETCH_HEAD的值rebase 远端最新 code到本地

emambp:jenkins emacat.git/HEADref:refs/heads/perfjobsmaster2mesosemambp:jenkinsema cat .git/FETCH_HEAD
b87369608ef3a3c1d6e25676fed6a9d034ae218e branch ‘feature/perf_jobs_master2mesos’ of ssh://stash.bbpd.io/learn/jenkins
emambp:jenkins emacat.git/refs/heads/perfjobsmaster2mesos836eb8f427c090064fd922fd4ca7656975a4809aemambp:jenkinsema git fetch origin feature/perf_jobs_master2mesos
From ssh://stash.bbpd.io/learn/jenkins
* branch feature/perf_jobs_master2mesos -> FETCH_HEAD
emambp:jenkins ema$ cat .git/FETCH_HEAD
836eb8f427c090064fd922fd4ca7656975a4809a branch ‘feature/perf_jobs_master2mesos’ of ssh://stash.bbpd.io/learn/jenkins

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章