git 平常使用,比较经常使用的东西

记录工做中,最经常使用的一些 git 命令跟操做git

建立分支跟合并分支

从本地建立分支

$ git checkout -b feature/dev

推送分支到远程shell

$ git push origin feature/dev

查看分支状况,远程本地都已经有分支了code

$ git branch -a

* feature/dev
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/feature/dev
  remotes/origin/master

从远程建立分支

$ git checkout -b feature/dev origin/feature/dev

查看分支状况,远程本地都有分支了开发

$ git branch -a

* feature/dev
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/feature/dev
  remotes/origin/master

合并分支

  • feature/dev 合并到 master分支
$ git merge feature/dev
  • 若是有冲突,则会提示提示以下,表示咱们须要解决冲突,才能继续合并
$ git merge feature/dev
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
  • 而后,咱们编辑文件,进行冲突的解决,冲突内容大概以下:
<<<<<<< HEAD
master
=======
Test merge
>>>>>>> feature/dev
  • <<<<<<< HEAD>>>>>>> feature/dev 部分,表示冲突的内容
  • <<<<<<< HEAD======= 部分,表示是HEAD节点,也就是master的内容
  • =======>>>>>>> feature/dev 部分,表示是feature/dev分支的内容
  • 咱们手动解决冲突后,须要从新提交
$ git add .
$ git commit -m"解决冲突"
$ git push

删除分支

删除本地分支

$ git branch -d feature/dev // 删除本地分支
$ git branch -D feature/dev // 强制删除本地分支

删除远程分支

$ git push origin :feature/dev

分支更名

$ git branch -M [old branch name] [new branch name]

版本管理

版本回退

  • 版本回退,有2种方式,咱们只介绍下经常使用的
    • 经过commithash值来进行回退
    • 经过 HEAD~2,来回退两个commit
$ git reset --hard [commit hash] // 回退到某个commit
$ git reset --hard HEAD~2 // 回退2个commit

假如,咱们在只是commit了,并无push到远程,并且咱们还回退了版本,咱们能够经过git reflog查看git执行的命令,来获取commithash值又返回到最新的commit节点rem

$ git reflog
$ git reset --hard [commit hash]

提交信息合并

咱们本地提交的信息有太多无用的信息,咱们须要合并一下提交信息源码

$ git reset --soft HEAD~2

上面命令,只会把commit信息回退,并不会将源码回退,这时候咱们能够从新提交commit信息hash

$ git commit -am"new commit message"

咱们就能够看到,前面的2个commit信息不见了,只有新的提交信息it

改动文件,临时提交

工做中,可能会碰见,正在开发某个需求,文件有改动,这时候,忽然来了某个紧急的bug,须要去解决,这时候,咱们还没改动完,想保留现场,而后切分支改完bug,在切回来,这时候就能够用到git stash命令了ast

先执行如下命令,将变化临时保存起来,提交到git堆栈,而且切换分支,更改代码class

$ git stash

修复完东西后,切回分支,在执行如下命令,将改动还原回来

$ git stash pop

文件管理

文件移除 git 管理

$ git rm --cached [file]
$ git commit -m""
$ git push

而后,将文件名称或者后缀写入.gitignore就不会被git管理了

文件夹移除 git 管理

$ git rm -r --cached [folder]
$ git commit -m""
$ git push

而后,将文件名称或者后缀写入.gitignore就不会被git管理了

相关文章
相关标签/搜索