前语

git在平常的作业中可以高效的帮助咱们进行版别的办理。可是不知道大家是不是跟我相同,平常用到的git指令就那么几个,有事没事 git pull 一下,完结代码之后就 git add .git commit -m xxxgit push 等等,可一旦遇到一些不常用的,像 版别回退吊销选择兼并 之类的操作,虽然也知道是 reset, revertcherry-pick 指令,可是就仍是不放心,要再去网上查一下,确认之后才继续运用,说到底仍是这些指令用得少。

这次,就总结一下平常作业中会遇到的一些指令,以及一些好用的操作,便利自己也便利大家。

git指令

git config

git config 用于配置大局信息,一般常用于配置用户名,邮箱

git config –global user.name “zhangsan”

git config –global user.email “zhangsan@163.com”

git init

git init 初始化库房

git clone

git clone <版别库的网址>存储库克隆到新目录中。

git add

git add 将文件增加至暂存区

git add . 将有更新的一切文件增加至暂存区

git commit

git commit -m xxxxx 将暂存区内容增加到本地库房

git commit -am xxxxx 相当于git add . + git commit -m xxx 指令(但关于新增的文件不能直接运用该指令进行提交)。

git commit –amend 可以修正最近的一次提交信息。

具体操作:

  1. git commit –amend 在弹出面板中输入i,进入修正模式,然后可以修正commit message信息
  2. 修正完结之后,按 ESC 退出修正,输入:wq退出,完结修正
  3. 假如想在最近的一次修正中,新增其他修正,可以运用git commit –amend -a指令,相似上面两步操作,可以在第二步完毕后主动带上暂存区的操作。

git fetch

git fetch 将某个长途主机的更新,悉数取回本地。默许情况下,git fetch取回一切分支的更新。(留意: 只是只会拉取长途的更改,不会进行兼并本地分支

git fetch <长途主机名> <分支名> 假如只想取回特定分支的更新,可以指定分支名

git merge

git merge branchNamebranchName 分支兼并到当时分支中,主动进行新的提交

git merge –abort 当兼并遇到抵触时, 想退出兼并,可以执行该指令。

git merge –continue 当兼并遇到抵触,解决完抵触之后,可执行该指令完结兼并。

git merge 的兼并,会产生一次新的提交

git rebase

git rebase branchNamebranchName 分支兼并到当时分支中,主动进行新的提交

git rebase –abort 当兼并遇到抵触时, 想退出兼并,可以执行该指令。

git rebase –continue 当兼并遇到抵触,解决完抵触之后,可执行该指令完结兼并。

git rebase 全体指令跟merge差不多,可是不同点在于:

  • rebase的兼并,并不会生成一次新的提交记载。
  • merge的兼并,会生成一条新的提交记载。

merge解决抵触的时分,只需求解决一次即可,可以理解为,两个分支比对之后,后续更新的提交中一切的不同点都摘出来,处理之后,作为一次新的提交即可完结兼并。

而rebase,假如有多次提交都有抵触文件,那么咱们需求去依次解决这些抵触,每处理完结一个,执行git rebase --continue指令继续处理下一个抵触,假如某次抵触咱们并不需求处理,那么可以运用git rebase --skip来越过这次 rebase 操作(但这个操作运用的时分需谨慎),当一切抵触处理完结之后即可完结兼并。

git pull

git pull <长途主机名> <长途分支名>:<本地分支名>指令用于从长途获取代码并兼并本地的版别,便是git fetch和git merge的简写。

git pull假如当时分支只需一个追踪分支,长途主机可以省掉。

git pull –rebase <长途主机名> <长途分支名>:<本地分支名> 假如兼并需求选用rebase模式,可以运用–rebase选项。

git push

git push <长途主机名> <本地分支名>:<长途分支名> 用于将本地分支的更新,推送到长途主机。

git push -u <长途主机名> <本地分支名> 假如当时分支与多个主机存在追踪关系,则可以运用-u选项指定一个默许主机,这样后边就可以不加任何参数运用git push

git push –all origin 将一切本地分支都推送到origin主机。

git stash

git stash 指令用于将当时的更改存储在一个额定的作业目录中。一般在面临,咱们需求暂时处理bug,可是手头作业又没能彻底处理完的情况,可以用这个指令暂时将当时分支修正的内容存起来,等后续bug解决之后,再将这部分内容拿出来继续作业。

git stash save “xxxxxx” 这个指令与直接git stash功能上相似,可是可以留下一些备注信息,便利后续运用这部分修正的时分去查找。

git stash list 展现额定作业目录中一切进行过的存储。也便是每进行一次git stash,就会留下一次记载,这个指令将一切的git stash操作记载给展现出来。

git stash apply 运用某个存储,但不会把存储从存储列表中删去,默许运用第一个存储。也可以运用git stash apply 1,后边数字可以变动,这样就可以运用存储列表中任一方位的存储。

git stash pop 用法和apply相同,只不过该指令在运用存储之后,会将存储从存储列表中删去。

git stash drop 从存储列表中删去最近一次的存储。后边加数字可以指定删去某个存储。

git stash clear 删去一切存储。

git reset

git reset [–soft | –mixed | –hard] [HEAD] 作用是修正HEAD指针指向的方位,便于咱们回退版别。完结回退操作之后,则HEAD指针新指向的版别之后的一切版别都被丢掉。

git reset HEAD^ fileName 回退某个文件 (fileName) 到上一个版别。

git reset HEAD^ 回退一切内容到上一个版别。

git reset HEAD^ –mixed--mixed为默许,可以不用带该参数,版别会回退到上一个版别,从上一个版别到当时,这期间的修正内容都会被重新放入作业区,也便是作业区文件内容保持不变(git status之后,这部分内容是 红色 的)。

git reset HEAD^ –soft 加了--soft 之后,版别会回退到上一个版别,而从上一个版别到当时,这期间的修正内容会被重新放入暂存区(git status之后,这部分内容是 绿色 的)。

git reset HEAD^ –hard 加了--hard 之后,版别会回退到上一个版别,并将作业区的一切内容进行删去,是一个全方面的回退(git status之后,得到的是working tree clean)。

git reset commitId 回退到指定版别。可以经过git log查看日志,复制想要回退的版别commitId,再执行此指令进行回退操作。

git revert

git revert 是反做版别,相似于吊销。但这儿的吊销和reset的那种回退不同的是,它会生成一个新的 commit 提交。一般用于咱们提交了多个版别,但忽然想吊销中心的某次修正,而保存其他的改动不变,这时就可以用revert 反做版别进行吊销操作。

git revert commitId 反做commitId对应的版别。吊销完结之后会主动进行提交文件,但需求经过修正器修正提交信息。

git revert -n commitId 反做commitId对应的版别,但不会主动进行提交,修正内容保存在暂存区,假如需求提交,可自行经过git commit进行操作。

git cherry-pick

git cherry-pick commitId 将指定 commitId 的提交兼并至当时分支。主要应对某个分支的改动有很多,可是咱们这次只想要其间的某一个提交。

git cherry-pick commitIdA..commitIdB 指令可以转移从 commitIdA 到 commitIdB 的一切提交。其间提交 commitIdA 必须早于提交 commitIdB。留意,commitIdA的提交将不会包括在cherry-pick 中。假如要包括提交 commitIdA,可以运用 git cherry-pick commitIdA^..commitIB

git checkout

git checkout 分支名 切换分支。

git checkout -b 分支名 以当时分支为根底,创立一个新的分支。

git checkout fileName 当还没有进行commit提交的时分,还原某个文件的改动。

git checkout . 将作业区的一切文件的内容康复到暂存区的状况。

git checkout分支名 文件名 当咱们进行兼并操作出现抵触的时分,关于某个文件,咱们想要彻底保存某个分支对应的该文件版别,可以经过该指令进行操作。

git restore

git restore 文件名 丢掉对应文件作业区的内容,相似于吊销。

git restore –staged 文件名 将提交至暂存区的文件重新放回作业区。

最后

git 的这些指令咱们平常常用的也便是那么几个,可是咱们总会遇到一些特殊情况,希望这篇总结可以给朋友们带来些许帮助。我自己是用指令行用习惯了,有的朋友会运用工具进行界面化操作,当然也没有问题,只需好用就行嘛。

那 git 指令的总结就到这儿啦。