git的几个有用的命令

版权声明:本文为博主原创文章,未经博主允许不得转载。如若转载,请注明出处! https://blog.csdn.net/Homewm/article/details/84615537

初学者的很好网站:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

(1)git init 确定仓库

(2)git add 1.txt 添加到仓库

git commit -m "first commit" 提交到仓库

(3)git status 文件状态

(4)git diff 查看之间的区别

(5)git log 查看日志

git log --pretty=oneline 只显示一行的内容

前面是版本号,是经过sha1计算出来的很大的数字。

(6)git reset --hard  HEAD^ 回退上一个    ###HEAD^^回退上上个,HEAD~100回退前100个。

回退的话,git reset --hard ff99 版本号没必要写全,几个就可以了。

在我的win7下写git reset --hard  HEAD^无法找到,写成git reset --hard  HEAD~1就可以。

当然git reset --hard 编号 也是可以的。

(7) git diff HEAD -- 1.txt  命令可以查看工作区和版本库里面最新版本的区别

(8)git checkout -- 1.txt       这个是丢弃工作区的修改

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commitgit add时的状态。

(9) git reset HEAD 1.txt   提交到暂存区后又返回到工作区

(10)rm 1.txt 删除工作区文件

           git rm 1.txt 之后使用git commit -m "rm 1.txt" 彻底删除

           如果只是删除本地地文件,那么使用git checkout -- 1.txt还是可以恢复的。

(11)分支创建与合并

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>  ##合并名为<name>的分支到当前分支

删除分支:git branch -d <name>

(12)用带参数的git log也可以看到分支的合并情况

git log --graph命令可以看到分支合并图。

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

(13)git merge --no-ff -m "hebing" dev

通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。

如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

(14)git stash 把当前的工作现场“储藏”起来。等恢复工作后使用。

            git stash list 命令查看储藏在哪个位置。

$ git stash list
stash@{0}: WIP on dev: f52c633 add merge

            git stash apply stash@{0}

            git stash apply恢复现场,需要使用git stash drop删除存储内容。使用git stash pop直接删除不恢复。

$ git stash pop
On branch dev
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   hello.py

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   readme.txt

Dropped refs/stash@{0} (5d677e2ee266f39ea296182fb2354265b91b3b2a)
$ git stash list
$ git stash apply stash@{0}

(15)git branch -d dev删除

            git branch -D dev 强行删除,删除之后无法修改。

            如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

(16)查看远程库信息,使用git remote

            查看更详细信息使用git remote -v

$ git remote -v
origin  [email protected]:michaelliao/learngit.git (fetch)
origin  [email protected]:michaelliao/learngit.git (push)

上面显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址。

(17)推送分支

git push origin master    推送到主分支

git push origin dev    推送到其它分支

(18)创建标签

首先切换到需要打标签的分支上,

$ git branch

$ git checkout master

$ git tag v1.0

$ git tag v0.9 f52c633   对特定内容进行打标签,其中f52c633是commit id

还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

git tag -a v0.1 -m "version 0.1 released" 1094adb
  • 命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

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

  • 命令git tag可以查看所有标签。

(17) 操作标签

$ git tag -d v0.1 删除打错的标签

$ git push origin v1.0 推送标签到远程

$ git push origin --tags 一次性推送全部尚未推送的标签到远程的本地标签

如果标签已经推送到远程,然后删除远程的。首先需要删除本地的标签,然后删除远程的标签。

$ git tag -d v0.1

$ git push origin  :refs/tags/v0.1

  • 命令git push origin <tagname>可以推送一个本地标签;

  • 命令git push origin --tags可以推送全部未推送过的本地标签;

  • 命令git tag -d <tagname>可以删除一个本地标签;

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

猜你喜欢

转载自blog.csdn.net/Homewm/article/details/84615537