美文网首页
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