美文网首页
Git常用命令

Git常用命令

作者: GaoXiaoGao | 来源:发表于2020-06-22 19:58 被阅读0次

1. 查看日志

git log //查看提交历史

git log --pretty=oneline  //查看日志在一行显示

git log --graph --pretty=oneline --abbrev-commit //查看各分支的合并情况

git show //查看最近提交的记录

git show  [提交的commit_id]  //查看更详细的提交记录,可以看到代码内容

git log -p  //查看的提交记录更多多,相当于多个git show[commit_id]

git reflog //查看命令历史

2.恢复到某一个提交版本

HEAD是当前最新版本
git reset --hard HEAD^  //恢复到上一个版本

git reset --hard HEAD^^  //恢复到上上一个版本

git reset --hard HEAD~100 //恢复到往上100个的版本

git reset --hard  [提交的commit_id]

3.添加当前目录下所有文件变化

git add .   //add后面和小点前面有空格

4.提交并添加提交日志

git commit -m "日志内容"

5.查看仓库当前的状态

git status

6.查看当前文件具体变化

git diff

7.回退版本后,要再回到未来的某个版本怎么办?

第一步git reflog查看未来版本的commit_id
第二步git reset --hard  [提交的commit_id]

8.撤销工作区的修改

git checkout -- filename (例如:readme.txt,注意--前后都有空格)
两种情况
1.文件修改后,未放到暂存区,执行git checkout -- filename后文件回到未修改前的状态,跟之前一模一样
2.文件修改一次,提交到了暂存区,又再次修改了文件并没有提交到暂存区
执行git checkout -- filename后文件回到第一次提交到暂存区的状态

9.撤销暂存区的修改到工作区

git reset HEAD 文件名
//状态修改为未提交到暂存区状态,文件内容修改的地方还在文件中修改了

10.将提交到暂存区状态恢复到原样

git reset HEAD 文件名
git checkout -- 文件名

11.删除文件

从版本库删除文件,手动删除文件git会记录状态,使用以下命令删除
git rm 文件名
git commit -m "日志"

//如果手动删除了文件,恢复文件使用如下命令,用以上命令删除恢复不了
git checkout -- 文件名
//用版本库里的版本替换工作区的版本

12.在github创建一个仓库,不初始化,如何在本地创建仓库并与远程关联

创建本地仓库文件夹如:test
然后
git init
添加一个文件,比如README.md
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/xxxx/mytest.git
git push -u origin master

如果本地已经建立了一个仓库,如何关联本地和远程仓库,使用如下命令
git remote add origin https://github.com/xxxx/mytest.git
git push -u origin master

13.在github创建了仓库,并进行了初始化,如何在本地创建仓库并与之关联

在github创建仓库时勾选Initialize this repository with a README
使用命令
git clone https://github.com/xxx/hello.git
克隆到本地的仓库会自动与远程仓库进行关联

14.本地仓库创建分支并合并分支到远程仓库

前提:本地仓库与远程仓库建议关联(12、13条)
创建分支并切换到分支
git checkout -b develop
此命令相当于以下两条
git branch develop
git checkout develop
编辑文件并提交
推送到远程使用以下两个命令之一
(1)git push origin develop
或
(2)git push
此时提示
fatal: The current branch develop has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin develop
执行以下命令后
    git push --set-upstream origin develop
远程仓库创建分支develop,并且修改的内容已推送到develop分支
点击pull request
创建develop合并到master

15.合并分支

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

git merge dev
合并dev分支到当前分支上

使用--no-ff参数,表示禁用Fast forward进行合并
git merge --no-ff -m "merge with no-ff" dev
因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并

16.删除分支

git branch -d dev
//强行删除dev分支
git branch -D dev

17.切换分支

git checkout <branch>

新的git版本可以使用switch命令切换分支
git switch -c dev    //创建并切换到新的dev分支
git switch master  //切换到master分支

18.查看原程分支信息

git remote
查看详细信息使用以下命令
git remote -v 

远程仓库默认名称是origin
推送当前分支gsg的所有本地提交到远程
git push origin gsg

19.暂存代码

工作到一半,需要在其他分支修复问题
先暂存代码
git stash
切换到其他分支修复问题
切换回原来分支
用以下命令查看刚才工作现场保存到哪里了
git stash list
恢复的方法有以下两个
(1)一种是git stash apply恢复,但是恢复后,stash内容还在,需要git stash drop删除
(2)另一种是git stash pop,恢复的同时,stash内容也删除了

20. 在一个分支上修复了Bug,要将这次提交复制到其他分支的办法

在dev_1.0分支上修复的bug,想要合并到当前dev_2.0分支?
复制dev_1.0上提交的commit_id
切换到dev_2.0
在dev_2.0分支执行
git cherry-pick commit_id命令
把bug提交的修改“复制”到当前分支

21.远程有分支dev和dev_2

要在远程dev分支上开发,首先需要在本地创建远程dev的分支
使用以下命令创建
git checkout -b dev origin/dev
当修改完文件提交并推送时
git push origin dev
突然推送失败,原因是其他人修改了同样的文件与你的提交有冲突
解决方法为
git pull 
把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送

git pull 失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接
使用以下命令建立链接
git branch --set-upstream-to=origin/dev dev
然后再 git pull
代码有冲突在本地解决冲突,解决后,提交再push

22.创建标签

git tag v1.0  //在最新提交上创建了v1.0标签
git tag v1.0  commit_id //根据提交commit_id创建标签
git tag -a v1.0 -m "version 1.0 " commit_id  //创建带说明的标签
创建的标签都是在本地的,如果要推送到远程则使用如下:
git push origin v1.0
或一次推送本地所有标签
git push origin --tags
或
git push --tags


git tag  //查看所有标签
git show   tag_name(标签名) //查看标签信息
切换到某个tag的版本代码
git checkout tag_name

标签打错,删除标签
git tag -d v1.0
如果标签推送到了远程如何删除
(1)先在本地删除git tag -d v1.0
(2)git push origin :refs/tags/v1.0

相关文章

网友评论

      本文标题:Git常用命令

      本文链接:https://www.haomeiwen.com/subject/cexrxktx.html