Git的一些基本命令

file:文件完整名称
$ mkdir 目录名称 :创建一个空目录

$ cd 目录名称 :进入目录中

$ pwd :用于显示当前目录路径

$ git init :把这个目录变成git可以管理的仓库,会提示仓库建好了,而且是一个空的仓库

$ git add file: 把管理的仓库(工作区)中的文件添加到暂存区,添加成功没有任何显示,这个命令可以添加多个文件 ,只需要用空格隔开就好

$ git commit -m " ":告诉git,把文件提交到仓库 -m:表示文件说明,只负责把暂存区的所有内容提交到当前的分支

$ git status :可以让我们时刻掌握仓库当前的状态.

$ git diff file:可以让我们了解文件作了哪些修改

$ git log :显示熊最近到最远的提交日志.也就是版本库的状态(输出commit id,作者,时间,文件说明),如果觉得信息太多,可以改为:
$ git log --pretty=online:输出commit id和文件说明,也就是提交历史,以便确定回退到哪个版本.

$ git reset -- hard HEAD^:版本恢复,HEAD(大写)表示当前版本,也就是最新提交的id,上个版本是HEAD^,上上个版本就是HEAD^^,然后上100个版本写HEAD~100

$ git reflog :记录你的每一次的命令,也就是命令历史,输出命令的内容,以便确定要回到未来的哪个版本.

$ cat file : 可以查看文件的内容

$ git diff HEAD -- file : 可以查看工作区和版本库里面最新版本的区别

$ git checkout -- file:把文件再工作区的修改全部撤销,两种情况:
1.文件修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态
2.已经添加到暂存区后, 后来又作了修改 ,现在,撤销修改就回到添加到暂存区后的状态.
这个操作会让文件回到最近一次git commit 或 git add时的状态

$ git reset HEAD file:当修改了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令:git reset HEAD file,就回到了add之前的状态,此时工作区中的文件内容还是你修改过后的,只不过是,你只是把它从版本库中的暂存区拉回来,并没有撤销对文件本身的修改,需要恢复到前一个版本,还需要执行一次命令:
$ git checkout -- file
如果已经提交到版本库中的暂存区, 但是没有再进行修改了 ,直接执行命令:
$ git checkout -- file是不会起作用的,需要执行命令:
$ git reset HEAD file再执行命令:$ git checkout -- file

$ rm file :把文件管理器(工作区)中把没用的文件删了. 并且:&git commit -m" ",这种方式是纯命令删除掉版本库中的文件,但是,如果你只是手动删掉(或误删)了工作区的文件,你可以使用命令:$ git checkout -- file.便可恢复文件.但是如果你是执行了命令:$ re file,但是并没有执行命令:$git commit 那么想要恢复,你只能提交后,恢复文件到过去的最新版本了,而且会丢失最近一次提交后你修改的内容.


$ git remote add origin [email protected]:name/learngit.git
其中name:Github上的名称,learngit.git是GidHub上的存储库:链接到远程仓库GitHub
origin:默认远程库名称

$ git push -u origin master:加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

$ git push origin master :推送最新修改

$ git checkout -b dev:创建dev分支 (-b)相当于创建dev分支,并切换到该分支上,相当执行了两个命令:
$ git branch dev :创建一个名为dev分支$ git checkout dev :切换到dev分支上

$ git merge :命令用于合并指定分支到当前分支

$ git branch : 列出所有分支,当前分支会标一个*号

$ git branch -d dev:删除dev分支
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>

$ git log --graph :命令可以看到分支合并图产品
git merge --no-ff -m "merge with no-ff" dev

$ git stash:掩盖并保存现场

$ git stash list : 查看工作现场

$ git stash pop : 恢复现场,同时把藏匿内容也删了

$ git branch -D <name> : 强行删除,比如未合并的分支

$ git tag <name> : 用于新建一个标签,默认为HEAD,也可以指定一个commit id;

$ git tag -a <tagname> -m "blablabla..." : 可以指定标签信息;

$ git tag -s <tagname> -m "blablabla..." :可以用PGP签名标签;

$ git tag : 可以查看所有标签。

$ git push origin <tagname> : 可以推送一个本地标签;

$ git push origin --tags : 可以推送全部未推送过的本地标签;

$ git tag -d <tagname> : 可以删除一个本地标签;

$ git push origin :refs/tags/<tagname> : 可以删除一个远程标签。

$ git push origin <tagname> : 可以推送一个本地标签;


$ git push origin --tags : 可以推送全部未推送过的本地标签;

$ git tag -d <tagname> : 可以删除一个本地标签;

$ git push origin :refs/tags/<tagname> : 可以删除一个远程标签。

$ git remote -v :查看远程库信息

$ git remote rm origin :删除已关联的名为origin的远程库

$ git push origin master -f :强行让本地分支覆盖远程分支

$ git pull origin master --allow-unrelated-histories : 把运程分支上的提交合并到本地分支(新版本)旧版:$ git pull origin master

$ git config --global color.ui true : 让git在适当位置上显示颜色

$ git config --global alias.st status:配置别名,这个命令意思是把status起一个别名st,作用跟status一样

猜你喜欢

转载自blog.csdn.net/lplife/article/details/79818715