git基础

作者: 牧码人爱跑马 | 来源:发表于2018-07-20 10:07 被阅读0次

    一、git常用命令

    git init
    git add xxx.txt yyy.txt
    git commit -m "xxx"
    git log
    git status
    
    git checkout -- file   //丢弃工作区的修改
    git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
    
    git reset HEAD file1.txt  //git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区
    
    git reset --hard HEAD^
    git reset --hard 1094a(从版本库中切换到某个分支)
    git reflog
    $ git rm test.txt  //从版本库中删除
    

    git diff #是工作区(work dict)和暂存区(stage)的比较
    git diff --cached #是暂存区(stage)和分支(master)的比较
    提交后,用git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别

    小结:git checkout和git reset的区别

    git checkout --1是没放到暂存区时撤销修改,2是放到暂存区后回退到放在暂存区前的状态。
    git reset 是用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区

    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

    场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

    git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

    命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

    二、添加远程仓库

    git remote add origin git@github.com:bolenzhang/learngit //添加远程仓库
    git push -u origin master //把本地库推送到远程库上
    git push origin master //第一次加-u,后面推送可以忽略

    git config --global user.name "bolen zhang"
    git config --global user.emal "zliyong007@163.com"
    git 客户端生产key:
    ssh-keygen -t rsa -C "zliyong007@163.com"
    ~/.ssh
    cat id_rsa.pub

    三、从远程库创建项目

    上面我们讲了先有本地库,后有远程库的时候,如何关联远程库。
    现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。
    创建项目略
    git clone git@github.com:bolenzhang/gitskills.git //克隆一个本地库

    git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

    四、技巧

    默认情况下,会下拉获取带有完整历史的仓库,这个过程需要较长时间。也可以通过--single-branch -b master --depth 1 命令选项来指定只获取master分支最新的提交代码,如下命令所示。

    git clone --single-branch -b master --depth 1 http://gerrit.hyperledger.org/r/fabric

    五、创建分支

    git checkout -b dev

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

    $ git branch dev
    $ git checkout dev
    Switched to branch 'dev'
    

    然后,用git branch命令查看当前分支:

    $ git branch
    * dev
     master
    

    现在,我们把dev分支的工作成果合并到master分支上:

    $ git merge dev
    

    合并完成后,就可以放心地删除dev分支了:
    $ git branch -d dev

    相关文章

      网友评论

          本文标题:git基础

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