git的GUI工具Sourcetree使用及命令行对比

1.提交推送

binlive前端开发,web开发,node,vue,react,webpack

流程html

  1. 勾选要提交的文件
  2. 填写提交说明内容
  3. 想提交直接推送到代码仓库时,勾选左下角按钮
  4. 最后点击提交按钮便可完成代码推送

等同于前端

git add index.html  //添加暂存文件
git commit -m "feat(index):  新增index.htm首页内容"  //添加提交及提交信息
git push  //推送至远程

2.贮藏工做区

binlive前端开发,web开发,node,vue,react,webpack

使用vue

  1. 当你想使如今当工做区保持干净时可使用暂存功能,贮藏会把全部未提交的修改(包括暂存的和非暂存的)都保存起来
  2. 当你有另外一部份内容须要修改可是不想丢弃如今已经修改过当内容时,能够贮藏工做区
  3. 当你想推送代码时,发现分支已有别人提交当代码(处于分支落后时),能够先暂存代码而后再拉去最新当代码,代码拉取完成而且没有冲突时能够将贮藏区保存的内容应用到当前工做区

等同于node

git stash    //存储工做区
git stash save 'development'     //存储工做区并添加备注内容
git stash list         //查看已贮藏区列表
git stash apply        //应用最新贮藏的内容(应用后不删除该贮藏)
git stash pop         //应用最新贮藏的内容(应用后该贮藏的内容会被删除!)
git stash drop         //删除最新贮藏的内容
git stash apply        git stash pop        git stash drop 均可以指定操做任意一个已贮藏的内容,只须要在后面跟入stash@{1}索引,输入git stash list 查看索引

3.回撤版本

binlive前端开发,web开发,node,vue,react,webpack

binlive前端开发,web开发,node,vue,react,webpack

使用react

  1. 当不当心将错误当代码推送到远程仓库想要回撤而且不留下版本记录时
  2. 选中要回撤到到版本,点击重置到此次提交,此时本地版本将会重置到该版本,而且落后于远程分支
  3. 最后使用命令行强制推送git push --force origin master,将本地代码强制覆盖到远程仓库

等同于webpack

git reset --soft 634b64d //将版本重置到634b64d版本,或者 git reset --soft HEAD^ 将版本重置到上一个版本,git reset --hard 634b64d 命令则不会保存以前提交到内容
git push --force origin master //强制覆盖远程仓库

4.提交回滚

binlive前端开发,web开发,node,vue,react,webpack

使用git

  1. 但愿将当前提交的版本回滚到此次提交以前而且保留此次提交,可使用提交回滚
  2. 选中要回滚的版本,点击提交回滚,此时本地分支将会回滚到该提交以前到状态,回滚也会被看成一次提交,而且领先于远程分支
  3. 最后推送代码便可完成远程仓库提交记录回滚,而且保留被回滚到记录

等同于web

git revert HEAD -n //回滚到上一个版本
git commit -m '回滚该次提交'
git push

5.版本标签记录(tag)

binlive前端开发,web开发,node,vue,react,webpack

binlive前端开发,web开发,node,vue,react,webpack

使用shell

  1. 在发布阶段性版本时能够为版本作标签记录
  2. 选中要打标签的版本,点击标签就会弹出要打标签打设置窗口,勾选推送标签后标签会被推送到远程仓库,不然标签只会存在于你的本地仓库
  3. 删除标签能够删除已经被添加过的标签

等同于app

git tag //查看已有的标签
****操做本地仓库标签******
git tag v1.0.0 //为最新的提交记录建立名为'v1.0.0'的标签
git tag v1.0.0 1452113 //为版本号1452113的提交记录建立名为'v1.0.0'的标签
git tag -d v1.0.0 //删除本地仓库名为'v1.0.0'的标签
****操做远程仓库标签******
git push origin v1.0.0  //将名为'v1.0.0'的标签推送到远程仓库
git push origin :refs/tags/v1.0.0  //删除远程仓库里名为'v1.0.0'的标签

6.建立分支

binlive前端开发,web开发,node,vue,react,webpack

使用

  1. 建立分支时会在当前分支基础上建立分支
  2. 勾选工做副本父节点时会在当前分支的最新版本上建立新分支,勾选指定的提交时能够选中建立新版本时的版本记录位置
  3. 勾选检出新分支时能够在完成版本建立后直接切换到该建立的新分支上

等同于

git branch  //查看分支
git branch dev //在当前分支基础上,以最新版本建立名为'dev'的分支
git branch dev d519940  //以'd519940'版本记录,建立名为'dev'的分支
git checkout dev  //切换到'dev'分支
git checkout -b dev  //建立并切换到'dev'分支
git branch -d dev  //删除'dev'分支(删除分支时不能处于所要被删除的分支上)
git branch -D dev  //强制删除'dev'分支(分支尚未被合并时须要强行删除,强行删除后将丢失已修改的内容)
******操做远程仓库********
git push origin dev:dev  //将本地分支'dev'推送到远程仓库命名为'dev',(本地分支名:远程分支名)
git push --delete origin dev  //删除远程'dev'分支

7.合并分支

binlive前端开发,web开发,node,vue,react,webpack

使用

  1. 将dev分支提交后,若是要合并到master,先将本地分支切换到master(在分支名称上双击便可切换)
  2. 要合并至哪一个分支,必须先切换到该分支

等同于

git checkout master  //切换至master分支
git merge de //合并de分支至master分支

8.拉取分支

binlive前端开发,web开发,node,vue,react,webpack

使用

  1. git fetch 抓取远程更新取回本地,不会对工做区代码进行合并形成任何影响
  2. git push 将本地分支的更新推送到远程
  3. 拉取操做默认所有不勾选的时候使用git pull --no-commit
  4. --no-commit 参数在拉取合并后,为了防止合并失败并不自动提交,可以给使用者一个机会在提交前审视和修改合并结果
  5. --no-ff 不使用fast-forward方式合并,保留分支的commit历史
  6. --rebase 使用变基代替合并(详见下文)

rebase 变基

git pull的操做自己上是抓取远端更新而后与本地分支进行合并,合并又分为merge以及rebase
git pull 等同于 git fetch + git merge
git pull --rebase 等同于 git fetch + git rebase

在落后版本状况下使用merge拉取合并时,且产生一个merge commit形成了没必要要的合并提交,并且提交线也变得不连贯。使用rebase变基操做合并时,它会把你的分支移动到master分支的后面,把master分支上新的提交并入到你提交以前,这样提交线就变成了一条连贯的线。详见 Git 分支 - 变基 or Rebase使用

等同于

git fetch //抓取远程更新取回本地不进行合并
git pull  //拉取远程更新使用'git merge'的方法合并到本地,而且提交该次合并
git pull --no-commit  //拉取远程更新使用'git merge'的方法合并到本地,不会自动提交提该次合并
git pull --no-commit --log
git pull --no-commit --no-ff
git pull --no-commit --rebase //拉取远程更新使用git rebase的方法合并到本地

9.操做远程分支

binlive前端开发,web开发,node,vue,react,webpack

使用

  1. 展开远端列表时,便可显示远程仓库中全部的远程分支
  2. 选中某一项分支,右键选择检出时,便可将该远程分支在本地建立出一条分支,而且能够在后续对话框中选择是否跟踪该远程分支(跟踪分支后,使用推送(push)或拉取(pull)时,都会自动推送(push)或拉取(pull)到该关联的远程分支上)
  3. 选择拉取功能时,能够将该远程分支更新并合并到本地当前所在分支上
  4. 选择删除时,能够将远程代码仓库中的该远程分支删除

等同于

git branch -r  //查看全部远程分支 (使用'git branch -a'命令能够查看全部分支)
git checkout -b dev --track origin/dev //将远程'dev'分支在本地建立命名为'dev'分支,'--track'能够跟踪该远程分支
*****下面两条命令删除远程'dev'分支********
git branch -r -d origin/dev
git push origin :dev

10.查看修改记录

binlive前端开发,web开发,node,vue,react,webpack

使用

  1. 选中文件后右键查看选中的修改日志便可查看在当前版本以及以前全部版本的提交记录
  2. 可视化界面能够很直观的对比文件修改版本记录

等同于

git log index.html  //查看'index.html'文件全部的提交信息记录
git log -p index.html  //查看'index.html'文件全部的提交修改内容

11.挑选版本合并(cherry-pick)

binlive前端开发,web开发,node,vue,react,webpack

使用

  1. 当你想把一个分支上中间某一条或者几条记录合并到另外一个分支上时,由于要合并的分支上又存在其余别的提交,又不想把这些也一块儿被合并上去,这时可使用遴选功能(cherry-pick)
  2. 先切换到要合并的分支上,而后在版本记录上选择你要合并的那条版本(能够多选合并多条),右键选择遴选
  3. 使用遴选时,最好按照提交顺序进行合并,若是跳过前面的版本选择后面的则可能会致使文件产生冲突,不过手动解决冲突后依然能够继续提交推送

等同于

git checkout dev //要合并到'dev',须先切换至'dev'分支
git cherry-pick  905a563 //将'905a563'版本合并到当前分支,而且保留当次提交信息
相关文章
相关标签/搜索