淘先锋技术网

首页 1 2 3 4 5 6 7

git命令一览(如果你没有耐心看文字,那么就直接看图吧)

git常用命令归纳,git使用有它你就够了

1.常用

config

init

  • 初始化git

clone

  • 下载项目

status

  • 查看状态

checkout

  • 创建分支

    • git checkout -b branch1
  • 切换分支

    • git checkout branch2

pull

  • git pull

    • git fetch + git merge

push

  • 推送/创建远程分支

    • git push -u origin branch1
  • 删除远程分支

    • git push origin --delete branch1
    • git push origin :branch1
  • 推送分支

    推送branch本地更新到release远程分支上,在推送之前,需要git pull origin release,在branch本地分支拉取release远程更新。

    注意:就目前我们的代码和分支管理,不太推荐在release和master_pre上使用,因为我们的个人分支都是基于master的

    • git push origin branch1:release

add

  • 修改&删除(update)

    • git add -u
  • 更新&新增&删除

    • git add -A
    • git add .

commit

  • 正常提交

    • git commit -m ‘message’
  • 合并上一个提交

    • git commit --amend

      可以修改commit message,且git图形化界面上只能看到最新的一次commit信息

merge

  • git merge branch1

    • 把branch1合并到当前分支

log

  • 打印信息

    • git log

    • git log --oneline

    • git log --pretty=oneline

    • git log --graph --pretty=oneline --abbrev-commit

  • 比较分支commit信息

    当我们忘记自己分支上的代码是不是已经合到master,或者想看一下有没有合到master的commit时,就很好用了

    • git log branch1 ^master

reflog

  • 所有git操作的记录者

    • git reflog

2.stash

适用于:你临时接bug,需要放下手上的工作,切换分支做其他的场景,这时你把它们stash起来,改好临时bug就可以回来继续了。

标签:你的秘密小仓库

查看暂存区信息

  • git stash list

暂存

  • git stash
  • git stash save ‘message’

取出暂存

  • git stash pop
  • git stash apply stash@{0}

删除暂存

  • git stash drop stash@{0}
  • git stash clear

查看暂存

  • git stash show stash@{0}

    • 修改哪个文件
  • git stash show stash@{0} -p

    • 修改了的内容

恢复stash误删

  • step1:git fsck --lost-found
  • step2: git show
  • step3: git merge

3.rebase

适用于:一个功能有n个commit提交的时候。看着n多个无用commit就让人很难受,不仅不利于review代码,版本上线有问题,还不好排查。(所以说rebase是代码提交规范的小能手,也是强迫症的福音)

标签:强迫症福音

注意:rebase是一个危险的命令,如果在共同开发的分支上使用,会导致丢失提交记录。

建议:在只有自己开发的分支上操作

看一下这篇文章,你会学到更多:http://jartto.wang/2018/07/08/git-commit/(代码规范,commit)

git rebase -i [commitID]

  • 进入vi编辑模式

    有几个命令需要注意一下:
    p, pick = use commit
    r, reword = use commit, but edit the commit message
    e, edit = use commit, but stop for amending
    s, squash = use commit, but meld into previous commit
    f, fixup = like “squash”, but discard this commit’s log message
    x, exec = run command (the rest of the line) using shell
    d, drop = remove commit

    • pick§
    • squash(s) 命令

git rebase --continue

  • 处理冲突-继续

git rebase --edit-todo

  • 关闭了vi-继续

git rebase --abort

  • 撤销rebase

4.revert

git revert -n [commitID] + git commit -m ‘message’

git revert [commitID]

  • 回退[commitID]这个版本的代码,其他保持不变

多个撤销

  • git revert -n [commitID1]…[commitID3]

    • 撤销连续commit,至commitID1
  • git revert -n [commitID1]
    git revert -n [commitID4]

    • 撤销不连续commit,1和4

终止revert

  • git cherry-pick --abort

    • revert 之后,还没有提交,可以终止

5.reset

适用于:提交错误,代码回退。

reset的操作其实就是把指针指到你要到达的那个commitID(或版本),后面的commit(或版本)不再出现在git树中,但是只要你能找回id(git reflog),即使已经reset掉的commit,也可以用它找回来

标签:想走就走,想回就回

  • git reset --soft [commitID]

  • git reset --hard [commitID]

  • git reset --mixed HEAD^

  • git reset HEAD~1

master 分支在 GitLab 里是被保护的,无法强推

  • rebase + revert

6.remote

git remote add origin

  • 远程库的http或ssh 把本地库与远程库链接

7.补充:创建新项目并关联git仓库

下载node(npm),xcode(git),安装vue,vue-cli,webpack.

vue init webpack ‘myproject’

  • 创建vue 项目

npm install

  • 加载依赖

git init

  • 初始化git

git add .

  • add 所有文件

git commit -m ‘master’

  • 提交所有代码

git remote add origin

  • 关联远程库

git push -u origin mater

  • 把代码推送到远程库

XMind - Trial Version