git常用指令

109 阅读2分钟
'''
1.常用
'''
$ git remote add origin git@github.com:yeszao/dofiler.git         # 配置远程git版本库
$ git pull origin master                                          # 下载代码及快速合并 
$ git push origin master                                          # 上传代码及快速合并
$ git fetch origin                                                # 从远程库获取代码

$ git branch                                                      # 显示所有分支
$ git checkout master                                             # 切换到master分支
$ git checkout -b dev                                             # 创建并切换到dev分支
$ git commit -m "first version"                                   # 提交

$ git status                                                      # 查看状态
$ git log                                                         # 查看提交历史

$ git config --global core.editor vim                             # 设置默认编辑器为vim(git默认用nano)
$ git config core.ignorecase false                                # 设置大小写敏感
$ git config --global user.name "YOUR NAME"                       # 设置用户名
$ git config --global user.email "YOUR EMAIL ADDRESS"             # 设置邮箱
'''
2.修改与提交
'''
$ git status                      # 查看状态
$ git diff                        # 查看变更内容
$ git add .                       # 跟踪所有改动过的文件
$ git add <file>                  # 跟踪指定的文件
$ git mv <old> <new>              # 文件改名
$ git rm <file>                   # 删除文件
$ git rm --cached <file>          # 停止跟踪文件但不删除
$ git commit -m “commit message”  # 提交所有更新过的文件
$ git commit --amend              # 修改最后一次提交
'''
3.查看提交历史
'''
$ git log      // j是下,k是上,q是退出          # 查看提交历史
$ git log -p <file>               # 查看指定文件的提交历史
$ git reflog                      # 查看比较全的历史,包括版本回退等
$ git blame <file>                # 以列表方式查看指定文件的提交历史
'''
4.版本回退  # HEAD 是一个特别指针。在 git 中,它是一个指向你正在工作中的本地分支的指针,可以将 HEAD 想象为当前分支的别名。
'''
$ git reset --hard HEAD^          # 回退到上一个版本
$ git reset --hard HEAD           # 撤消工作目录中所有未提交文件的修改内容
$ git reset --hard <version>      # 撤销到某个特定版本
$ git checkout HEAD <file>        # 撤消指定的未提交文件的修改内容
$ git checkout -- <file>          # 同上一个命令
$ git revert <commit>             # 撤消指定的提交
'''
5.stash
'''
$ git stash                       # 暂时储存当前的更改
$ git stash list                  # 显示暂存列表list
$ git stash apply                 # 应用最新的暂存区的更改
$ git stash pop                   # 应用最新的暂存区的更改,并删除最新暂存区
'''
6.merge
'''
$ git cherry-pick <commit>        # 只合并某次commit

其他

1.git pull = git fetch + git merge 功能一样,但是原理不同。

前者;拉取并直接合并

后者:先拉取代码到本地,然后再merge。---推荐使用。

2.git rebase与git merge的区别

git rebase 与 git merge 取舍

多人开发还是选用git merge吧 ,利己利人。

www.jianshu.com/p/f23f72251…

3.拉取远程分支,本地建立相同分支。

git fetch origin 远程分支: 本地分支 。 注意:本地分支不写,则和远程分支一个名字

git checkout 本地分支

4.撤销到某个版本

适用场景: 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。

git reset [--mixed |--soft | --hard]

例如:git reset --soft HEAD^

HEAD^的意思是上一个版本,也可以写成HEAD~1

如果你进行了2次commit,想都撤回,可以使用HEAD~2

参数取值特点推荐
mixed 不删除工作空间改动代码,撤销commit,并且撤销git add . 操作默认参数
soft  不删除工作空间改动代码,撤销commit,不撤销git add .-
hard删除工作空间改动代码,撤销commit,撤销git add . 注意完成这个操作后,就恢复到了上一次的commit状态。一般回退版本时使用。恢复到了某个版本,包含这个版本。

4.撤销某个版本

revert[反转]

其实是没有直接让远端代码回复到某次的指令,实现撤销push的思路如下: 

  1. 先让代码恢复到想要恢复的前一次提交记录。
  2. 重新提交代码,覆盖端上的代码,就相当于撤销了push 的提交。

reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了。
而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的。