• git指令整理汇总


    Git

    1、git init 创建版本库,初始化


     

    2、git add  向git添加文件,把文件添加到版本库


     

    3、git log   告诉我们历史记录


     

    4、git commit -m ‘’ 提交修改


     

    5、git  reset - - hard head/1213…  将版本重置到当前版本或其他版本(head指当前版本,1213指其他的版本的头部一连串数字


     

    6、git reflog Git提供了一个命令git reflog用来记录你的每一次命令


     

    7、git status            git status查看一下工作区的状态


     

    8、git diff head - - 文件名称    可以查看工作区和版本库里面最新版本的区别


     

    9、git checkout - - 文件路径加名称    丢弃工作区当前文件的修改

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

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

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

    git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。


     

    10、$ git remote add origin git@github.com:michaelliao/learngit.git

    请千万注意,把上面的michaelliao替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。

    添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。


     

    11、$ git push -u origin master

    由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

    从现在起,只要本地作了提交,就可以通过命令:

     

    $ git push origin master


     

     

    11、$ git clone git@github.com:michaelliao/gitskills.git


     

    12、如果你确实想添加该文件,可以用-f强制添加到Git:

    $ git add -f App.class

    或者你发现,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查:

    $ git check-ignore -v App.class

    .gitignore:3:*.class    App.class

    Git会告诉我们,.gitignore的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规则。

     


     

    13、git checkout -b dev

    git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

    $ git branch dev

    $ git checkout dev

    Switched to branch 'dev'


     

    14、git branch命令查看当前分支


     

    15、git checkout master 切换分支


     

    16、git merge dev 把dev分支的工作成果合并到master分支上。命令用于合并指定分支到当前分支


     

    17、git branch -d dev   删除dev分支


     

    18、git branch feature2创建feature2分支但不切换到此分支


     

    19、git stash

    把当前工作现场“储藏”起来,等以后恢复现场后继续工作。

    工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:

    一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

    另一种方式是用git stash pop,恢复的同时把stash内容也删了


     

    20、查看远程库的信息,用git remote
    git remote -v显示更详细的信息:

    eg:$ git remote -v

    origin  git@github.com:michaelliao/learngit.git (fetch)

    origin  git@github.com:michaelliao/learngit.git (push)

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


     

    21、推送分支: git push origin master推送到远程master分支

      git push origin dev推送的远程dev分支


     

    22、git checkout -b dev origin/dev

    创建远程origin的dev分支到本地


     

    23、你的小伙伴的最新提交和你试图推送的提交有冲突,解决办法也很简单,Git已经提示我们,先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送


     

    24、多人协作的工作模式通常是这样:

    1. 首先,可以试图用git push origin <branch-name>推送自己的修改;
    2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
    3. 如果合并有冲突,则解决冲突,并在本地提交;
    4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

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


    25、方法一,先git reset回滚到本地,然后再强制push到远程。

     

     

     

           1,回滚到本地上述已经说明不再赘述。

     

           2,强推到远程分支(谨慎操作,胆小勿做,备份预备)

     

     

     

            git push -u origin master -f        origin:远程仓库名  master:分支名称  -f:force,意为强制、强行

     

           我们是要把本地的修改强制推送到远程分支上,在强推mster的可能会报错,意思是没有权限之类的错误,报错如下。

     

           remote: GitLab: You don't have permission

           To git@10.255.223.213:code-ddreader/media-hapi.git

            ! [remote rejected] master (pre-receive hook declined)

     

     

     

           是因为master分支一般会成为保护分支,所以我们首先要去除master为保护分支,才可以强推。

     

           为分支开启保护

     

                  *管理员可以开启

                  * 开启,无法强制推送

                  * 开启,无法被删除

                  * 只有测试全部通过才被接受合并

     

           该分支添加了保护权限,需要设置去掉保护权限(http://10.255.223.*/code-dd/media-project/protected_branches)。


     

     26、

    1. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

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

     

     

     

     删除本地所有为暂存的修改: 

    git checkout -f

     

    如果有修改以及加入暂存区的话 

    git reset --hard 

    git clean -xdf 

     


    总结自https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001373962845513aefd77a99f4145f0a2c7a7ca057e7570000

     

  • 相关阅读:
    template(name="remote" type="string" string="%msg%")
    legacy 发送和接收格式
    保存退出vi编辑以及CentOS 系统安装配置步骤详解
    Templates 模板:
    [Err] 1449
    select2如何设置默认空值
    select2切换事件如何生效
    Basic Structure 基本结构:
    FineBI与FineReport对比
    geoip设置
  • 原文地址:https://www.cnblogs.com/qdcnbj/p/9869331.html
Copyright © 2020-2023  润新知