git命令快速入门

看完这篇文章,git的使用水平,可以达到初中级,可以和大佬撕逼

先记住几个基本概念:
仓库:
本地仓库
    本地分支,工作区,暂存区
远程仓库
    远程分支

先掌握这个命令,有助于理解git设计思想
git status

查看文件状态,如果文件显示位红色,代表工作区修改还未保存至暂存区,如果是绿色代表保存至暂存区,但尚未入库。如果没有任何提示,说明工作区,暂存区和仓库代码是一致的。

接下来讲解基本命令
git基本命令有
git add 
添加本地修改至暂存区,将本地修改存入本地仓库有两步,执行add后,执行commit。add后文件状态变为绿色,代表进入暂存区等待提交


git commit
将暂存区提交入本地仓库,也就是将绿色状态的提交入库,入库后,工作区与暂存区和仓库中代码一致,git status,是看不到提示的。每次提交会产生一个提交记录,一般用hash值表示


git push
将本地仓库的commit,推入远程仓库,如果远程仓库也有修改,需要先更新代码,才能提交,如果远程仓库的地址和本地仓库映射的远程仓库的地址不一样,是无法同步推送和更新的。


git pull 
从远程仓库拉取最新提交代码,并与本地仓库代码合并,如果本地仓库有提未提交的代码,需要先提交本地仓库代码。如果有冲突,需要解决冲突


git clone
从远程仓库复制代码


git fetch
从远程仓库拉取最新提交到本地仓库,与pull的不同在于不做合并处理

高级命令
这些命令往往功能较为复杂,带上不同的参数可以产生意想不到的效果,往往搞得你晕头转向。

git reset
reset本意就是回退还原代码,是从本地仓库中拉出一个提交,覆盖工作区和暂存区内容,之后的状态都是红色,至于回退多少内容,取决于参数
常用的有 
git reset file HEAD,  (随便用,会把最新一次提交还原回工作区,丢掉暂存区的状态)
git reset --soft HEAD^ (随便用,会把最新一次提交还原回提交前的状态)
git reset --hard HEAD^(慎用,会丢代码)


git diff
查看工作区与暂存区的区别
git diff --cached 
查看暂存区与本地仓库的区别
git diff HEAD
查看工作区与本地仓库的区别
git diff SHA1 SHA2 查看两次提交的区别(SHA1 SHA2是每次commit生成的hash值)


git rebase
整个网上说法很多,很多翻译为变基,其实不太好理解,说白了就是将一次提交,追加在另一个提交后面。常用于跨分支合并代码。
简单比喻,就好比如带着一队同学去排队买东西,到了才发现原来有多条队伍。
你作为队长,能够有权利改变整个队伍排在那一队。中途如果你发现另一队更快,你如果决定换队,后面的人跟着你换队。
而rebase时,你就是作为当前分支的队长,队员则是每一次提交形成的提交队列。每次执行rebase,就会将所有的提交附在另一个分支的后面。

高级用法,git rebase -i HEAD~N
可以打开交互界面,将多次提交合并成一次。同样的也可以将一次拆分为多次。

rebase时,可能遇到冲突,需要解决后,继续rebase 
git rebase --continue 
继续rebase
git rebase --abort
丢弃本次rebase
git rebase --skip
跳过本次rebase

git revert
这个理解为,将某一次提交重新提交一下。不是回退,撤销,回滚,丢弃的意思。翻译为恢复的意思更贴切。
 
git merge
分支合并,多次仓库合并等等


git checkout
将暂存区的内容还原到工作区,可以还原文件,以及回退提交,本地仓库和暂存区不受影响。

git checkout .
还原工作区的修改

git checkout file 
还原某个文件的修改

git checkou SHA1 -b new_branch
还原某次提交并切换新分支

git checkou -b new_branch 直接在当前最新的提交下切换到新分支

git stash
切换分支前,可以用来暂存暂存区的修改,一般可以用commit代替,不过commit会生成一次提交记录,stash不会

git log
查看提交日志

git blame
查看某段屎一样的代码是哪个狗日的写的

git branch
浏览分支
git branch -a
查看远程仓库的分支

git remote
可用来净化远程分支,操作远程仓库,查看远程仓库地址等
git remote prune origin

git submodule 
子模块操作,如循环拉取子模块内容
git submodule --update recursive 

git gc
压缩仓库和提交记录

组合命令和高级命令的奇招秘术


 

猜你喜欢

转载自blog.csdn.net/zanglengyu/article/details/129257945