git常用命令

110 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1. 克隆代码

git clone [地址]

2. 在master上直接修改,修改完后add .

git add .

3. 开发完,需要提交

// 从远程拉取或者  git pull --rebase origin 版本
git pull origin master
// 提交到本地master
git commit -m 'task标签'

4. 推送到远程

// 通常写法
git push origin master
// 用于检查代码
git push origin HEAD:refs/for/master

检查代码是否有错,返回来一个链接,打开链接,进行code review

HEAD:是一个特别的指针,它是一个指向你正在工作的本地分支的指针,可以把它当做本地分支的别名,git这样就可以知道你工作在哪个分支

refs/for:意义在于我们提交代码到服务器之后是需要经过code review 之后才能进行merge的

5. 查看提交历史

// 找到刚提交的版本号
git log

6. 需要修改,回滚到上一级,上一个版本号

回滚到上一个合并完成的,不能是自己commit还未合并的

git reset --soft 版本号 // 例如da8c178...
git push origin HEAD:refs/for/master // 提交到远程

没有合入时,不用回滚到上一次,直接追加信息,会把上一次commit的覆盖

// 查看diff
git status

// 添加修改
git add xxx

// 追加信息,退出使用 :wq(保存并退出)
git commit --amend

// 提交
git push origin HEAD:refs/for/master

git commit --amend:

  • 对之前的commit 提交进行修改,不仅可以修改提交的内容,还可以修改commit 信息。 注意:这里的之前指最近的commit,而且没有push到远程

修改提交的内容分为2种情况:

  • 提交了代码之后,又有新的改动,不想创建两个commit
  • 发现一个地方改错了,下次提交时不想保留上一次的记录

编辑commit信息,进入编辑模式:

  • 小写i:在光标所在行位置停止不动开始写入内容

  • 大写I:在光标所在行行首开始写入内容

  • 小写a:在光标所在行当前字符后开始写入内容

  • 大写A:在光标所在行行尾开始写入内容

  • 小写o:在光标所在行下一行开始写入内容

  • 大写O:在光标所在行上一行开始写入内容 退出编辑模式:

  • :w:保存文本

  • :q:退出编辑模式

  • :w!:强制保存,在root用户下即使文本只读也可以强制保存

  • :q!:强制退出,所有改动不生效

  • :wq:保存并退出

7. 合并时遇到冲突或者错误取消合并

git merge --abort

8. 查看远程所有分支

// 查看本地分支
git branch
// 查看本地和远程的所有分支
git branch -a
// 拉取远程分支并同时创建对应的本地分支
git checkout -b 本地分支名x origin/远程分支名x

9. 查看某个文件

// 查看某个文件的提交记录例如:git log src/wp/service/api.js
git log 文件地址
// 显示提交和提交信息
git log --pretty=online 文件地址
git show 46643afa13c5d3e2c6b7a39e357045d5eb13ccd4 src/wp/service/api.js

10. 想切换别的分支,但是此分支现在有更改

// 查看当前状态
git status
// 暂存操作
git stash
// 暂存现在新建的文件/文件夹
git stash -u
// 切换别的分支
git checkout xxx
// 切换回来后,释放暂存
git stash pop

11. 使用严格模式的eslint

// 使用严格模式的eslint
yarn lint

12. 从远程拉取到本地,正在变基的,在当前分支拉取需要变基的分支

// 同步远程服务器的数据到本地
git fetch origin
// 需要变基的分支
git rebase origin/xxx
// 修改重复的
git add .
git rebase --continue
git push origin HEAD:refs/for/xxx

13. 已经拉取远程分支,并改动,远程分支删除,需要合并到另一个分支

// 将本地分支更换名字
git branch -m [分支名]
// 远程分支不存在,修复本地分支的上游
git branch --unset-upstream
// 为现在本地分支创建跟踪信息
git branch --set-upstream-to=origin/[分支] [本地分支]

14. 合并了一个分支,但是不需要了,撤销合并分支

// 找到合并的commit 版本号
git log
// 撤销合并
git revert 版本号

15. 重置,将现在的内容重置到某一阶段

// 重置后回不去了
git reset --hard [hash]