zoukankan      html  css  js  c++  java
  • Git

      基本操作:

      1.git config --global user.name '  '        //配置名字

      2.git config --global user.email ' '          //配置邮箱

      3.git init                                //初始化一个Git仓库

      4.git add  ‘  ’ (git add -A)            //把文件添加到暂存区,可反复多次使用,添加多个文件;

      5.git commit -m  '   '              //把暂存区的所有内容提交到当前分支

      6.git status        //查看仓库当前状态

      7.git diff            //看具体修改了哪些内容

      8.git log  --pretty=oneline              //显示从最近到最远的提交日志,加上后面这句话,看的更清楚

      关于回退:

      9.git reset --hard HEAD^              //回退到上一个版本。在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写成HEAD~100。例如先回退到上一个版本(HEAD^),然后会发现最新的那个版本已经不见了,如果想再次回到最新的那个版本,就通过git log找到commit id,再通过git reset --head commit_id回退 ,这个commit id写前几位就可以了,没必要写全。如果commit id找不到了,可以通过git reflog查看你之前的每一次命令。

      PS:必须先git add 文件放到暂存区再git commit提交,否则无效

      10.git checkout -- file                //丢弃工作区的修改 。一种是文件自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;另一种是文件已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

      PS:就是你在电脑上看到的目录,比如目录下gitskills里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。

      11.git reset HEAD <file>        //撤销掉暂存区的修改,重新放回工作区,然后再通过git checkout -- file 撤销掉工作区的修改。

      自我理解:工作区 --> 暂存区(git checkout) -->版本库(git reset,git checkout) -->远程版本库?

      回退总结:

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

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

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

      12. rm file             //删除文件,如果是真的想要删除这个文件,在执行完rm以后,再用git rm(此时同git add操作),然后再提交,这样在工作区和版本库中就都没有了这个文件。如果是删错了,用git checkout -- test.txt回退就可以了,因为版本库里面还有这个文件。

      远程仓库:

      13.ssh-keygen -t rsa -C "youremail@example.com"        //常见SSH key。设置成功以后可以在用户主目录(C盘-->用户/user-->Administrator)下找到.ssh目录,里面有id_rsaid_rsa.pub两个文件

      PS:在设置ssh的时候最后一步记得用ssh -T git@github.com验证,否则把本地仓库推送到远程仓库的时候会提示remote origin already exists.参考http://phpstudy.php.cn/c.php/35363.html

      14.git remote add origin https://github.com/username/reposityname.git     //把本地仓库与远程仓库相关联

      15.git push -u origin master                 //把本地仓库内容推送到远程仓库

      PS:从这时候开始只要本地仓库提交了,就可以直接通过git push origin master推送内容了

      从远程库克隆:

       16.git clone git@github.com:用户名/仓库名.git     (git clone github上的https地址)   //都可以,Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

      分支管理:

      17.git checkout -b 分支名         //创建加切换分支

      18.git branch                        //查看当前分支     git branch -r(远程分支)         git branch -a  (本地分支和远程分支)

      19.git checkout 分支名            //切换分支

      20.git merge 分支名               //用于合并指定分支到当前分支(只能看到当前分支信息)         git merge --no-ff -m ' 提交信息' 分支名 (可以从分支历史上看到分支信息)

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

      21.git branch -d 分支名            //删除分支

      22.cat 文件名                        //查看文件内容

      23.git log --graph --pretty=oneline --abbrev-commit                //查看分支历史

      24. git branch 分支名                 //创建一个新的本地分支,需要注意,此处只是创建分支,不进行分支切换,在当前分支的基础上,创建新分支,所以新建的分支的基本情况和当前分支一模一样

      25.git reflog  查看所有的操作记录

     PS:当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。用git log --graph命令可以看到分支合并图。

       

     
  • 相关阅读:
    机器学习项目流程
    机器学习之数据归一化问题
    python三数之和
    从不订购的客户
    case when then的用法-leetcode交换工资
    .NET Core Api 集成 swagger
    .NET CORE 2.1 导出excel文件的两种方法
    Dapper的基本使用
    (转)深入研究MiniMVC之后续篇
    (转)深入研究 蒋金楠(Artech)老师的 MiniMvc(迷你 MVC),看看 MVC 内部到底是如何运行的
  • 原文地址:https://www.cnblogs.com/yaoya/p/9264554.html
Copyright © 2011-2022 走看看