Git常用命令

发布于 2019-05-12  297 次阅读


1、创建一个空文件夹后,再创建仓库

$ git init

2、把文件添加到仓库中,并提交

$ git add readme.txt
$ git commit -m "wrote a readme file"

3、查看结果

$ git status

4、查看变更之处

$ git diff

5、查看历史记录

$ git log

$ git log --pretty=oneline

6、回退至上一版本

$ git reset --hard HEAD^
回退至前一个版本
$ git reset --hard HEAD^^
回退至之前第一百个版本
$ git reset --hard HEAD~100

7、回到未来的某一版本

$ git reset --hard 1094a(版本号)

8、查找所有的版本号

$ git reflog

9、放弃工作区的修改

$ git checkout --readme.txt
(这里的--如果去掉,则语句为切换到另一个分支)

10、撤销暂存区的修改(unstage)

$ git reset HEAD readme.txt

11、工作区删除文件后(有两个选择)

从版本库中删除文件,并提交

$ git rm test.txt
$ git commit -m "remove test.txt"

或者
把版本库还存在的文件还原回去
$ git checkout --readme.txt
注意:从来没有被添加到版本库就被删除的文件,是无法恢复的!

12、在电脑上创建SSH私钥和公钥

$ ssh-keygen -t rsa -C "youremail@example.com"

13、在GitHub或码云创建仓库后,在本地操作

$ git remote add origin git@github.com:Ted-Wnag/learngit.git
$ git push -u origin master

Ted-Wnag为GitHub账户名。
learngit为远程仓库名称,本地名称可与远程仓库名称不一样。
master为分支名称。

14、从远程clone一个远程库至本地

$ git clone git@github.com:Ted-Wnag/learngit.git
注意当前目录是否为自己想放置远程库的目录

15、创建dev分支并切换

$ git checkout -b dev

$ git branch dev
$ git checkout dev

16、查看分支

$ git branch

17、从dev分支切换回master分支

$ git checkout master

18、dev和master分支合并

$ git merge dev
此处注意有两种合并模式,Fast-forward模式和和普通模式(--no-ff)
也可指定--no-ff强制为普通模式
$ git merge --no-ff -m "merged bug fix 101" issue-101

19、删除分支

$ git branch -d dev

20、解除冲突时用git status可查看,同时可查看冲突文件内容,解决冲突后可用带参数的git log查看分支合并情况

$ git log --graph --pretty=oneline --abbrev-commit
(git log --graph即可查看分支合并图)

21、分支策略

master应该是特别稳定,仅用来发布新版本,而dev用来干活

22、突然需要解决其他任务/Bug,想储藏当前工作现场

$ git stash

23、查看工作现场

$ git stash list

24、恢复有且仅有一个的工作现场

$ git stash apply
只是恢复,如果需要删除stash内容,还需要执行
$ git stash drop
恢复同时并把stash内容删除
$ git stash pop

25、恢复多个中的一个工作现场

在此之前应该先用
$ git stash list
查看工作现场

$ git stash apply stash@{0}

26、强行删除某一分支

$ git branch -D feature-vulcan

27、查看远程库信息

$ git remote
更详细的
$ git remote -v

28、推送分支

$ git push origin master

$ git push origin dev

29、多人协作若别人已经推送到远程的dev分支,此时你是推送不上去的

git pull后发现还是失败,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置devorigin/dev的链接
$ git branch --set-upstream-to=origin/dev dev
git pull,pull后成功。但是合并有冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样。解决后,提交,再push。
因此,多人协作的工作模式通常是这样:

首先,可以试图用git push origin 推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!

如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to origin/

30、rebase(变基,即扁平化)

$ git rebase
rebase操作可以把本地未push的分叉提交历史整理成直线

rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比

31、创建标签

先切换到想切换的分支后再创建
$ git tag v1.0

32、查看所有标签

$ git tag
标签是按字母排序

注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

33、对某一commit id(版本号)打上标签

在此之前先
$ git log --pretty=oneline --abbrev-commit

$ git tag v1.0 f52c633

34、创建带有说明的标签

$ git tag -a v1.0 -m "version 1.0 released" 1094adb

35、查看标签对应点额说明文字

$ git show v1.0

36、删除标签

$ git tag -d v1.0

37、推送某个标签到远程

$ git push origin v1.0

38、一次性推送全部尚未推送到远程的本地标签

$ git push origin --tags

39、删除远程的标签

需要先删除本地的
$ git tag -d v1.0

$ git push origin :refs/tags/v1.0

40、将某一仓库既关联到github,又关联到码云上

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

关联GitHub的远程库
git remote add github git@github.com:Ted-Wnag/learngit.git

再关联码云的远程库
git remote add gitee git@gitee.com:Ted-Wnag/learngit.git

此时可用git remote -v查看远程库信息,可以看到两个远程库
git remote -v

41、让Git Bash显示颜色

$ git config --global color.ui true

42、忽略特殊文件

.gitignore文件(不需要文件名,不要Win资源管理器新建,而是用文本编辑器)

# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini

# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build

# My configurations:
db.ini
deploy_key_rsa

另外,有些时候,你想添加一个文件到Git,但发现添加不了,原因是这个文件被.gitignore忽略了
比如:$ git add App.class

如果你确实想添加该文件,可以用-f强制添加到Git:
$ git add -f App.class

若.gitignore可能写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查
$ git check-ignore -v App.class

43、配置别名

$ git config --global alias.st status
敲入git st试试

lg配置成了:
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

44、配置文件

配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用

每个仓库的Git配置文件都放在.git/config文件中

而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中:

配置别名错了可以在配置文件改。


根据廖雪峰老师的Git教程所写,其教程地址如下
Git教程 - 廖雪峰的官方网站

本文标题:《Git常用命令》

本文链接:https://wnag.com.cn/90.html

特别声明:除特别标注,本站文章均为原创,本站文章原则上禁止转载,如确实要转载,请电联:wangyeuuu@qq.com,尊重他人劳动成果,谢过~


正因为有要好好实现的梦想,所以今天也要好好加油。