# Git 常用操作
ls显示当前目录下的内容ll显示当前目录下的内容明细git status位于xx(master)分支,您的分支与上游分支‘origin/master'一致,并会显示出本地更改的部分git log查看历史git命令git checkout -b dev新建并切换到dev分支git push --set-upstream origin dev将本地的dev分支push到远程git(远程没有dev分支时使用)git diff web/src/components/userManage/layout4user.vue比较某单一文件的变化,按q退出diff状态git add web/src/components/userManage/layout4user.vue添加单一文件git commit -m ""git pushgit checkout -- .切换分支时,将本分支所有修改缓存git rm删除某一文件- 分支
git branch -a查看所有分支git branch -v查看各个分支最后一次提交git branch -D dev删除本地分支(需在非dev分支下运行)git push origin --delete dev删除远程分支(需在非dev分支下运行)
# 分支操作(新建,同步)
# 基于master创建本地新分支,并同步到远程
git checkout master,git pull切换到被copy的分支(master),并且从远端拉取最新版本git checkout -b dev从当前分支拉copy开发分支git push origin dev把新建的分支push到远端git branch --set-upstream-to=origin/dev关联本地分支dev与远程dev分支git pull再次拉取验证
# 拉取git上已存在的指定分支
git clone xxx.git拉取主分支git branch查看本地是否具有dev分支- 如果没有
git fetch origin dev git checkout -b dev origin/dev在本地新建dev并切换到该分支git pull origin dev
# 合并分支
场景:本地分支(dev)开发之后,发现远程仓库分支(master)有更新
- @dev ----
git stash临时将自己修改的代码存放在git栈中(否则checkout的时候会提示出错) - @master ----
git pull将远程代码master拉近本地仓库master - @dev ----
git merge master将本地的master合并到本地dev分支上,以便于在本地dev分支上包含最新的master代码 - @dev ----
git stash pop stash@{0}将git栈中的代码合并到本地dev分支,就可以看到之前修改的部分
# 将分支(dev)的某次提交合并到另一个分支(master)
- 在dev分支
git log打印commit记录,copy需要合并的commitId - 切换master,在master分支执行
git cherry-pick commitId git push
# 冲突解决
场景:远程仓库与本地仓库,同一文件,分别有不同的内容,所以,在本地push的时候不成功会报错conflict
- 冲突文件修改,删除不需要的部分
git add test.txtgit commit -m ""git push
# 操作撤回
# 撤销git add
git reset --mixed或者 git reset HEAD(撤销所有add)
# 取消上一次commit
git reset --hard HEAD~1
# 回滚上一次push
场景:push到远程仓库后,发现commit了多余的文件,希望回退到之前的版本。参考链接:http://yijiebuyi.com/blog/8f985d539566d0bf3b804df6be4e0c90.html
git branch -v查看commit-hashgit revert commit-hashcommit-hash:需要回滚到的commit的hash,此操作必须工作树必须干净,原理是用一个新的提交来消除一个历史提交所作的任何修改git push更新线上代码即可