/*在  cmd  上操作*/  

1. git help          // 帮助信息  常用git命令  和解释

2. git help -a      // 命令目录

3. git help -g      //手册

4. git  help add  //查看add命令的信息  或其他命令、手册

5. 按F键 - 向上翻页 ; 按B键 - 向下翻页 ; 按Q键 - 退出帮助信息

一、用户配置

1. git config --global user.name ‘guiyangyang’      // global 前两个-   设置用户名

2. git config --list     //查看配置信息

3. git config help     //帮助信息   出现错误时,使用帮助

4. git config --unset --global user.name     // 删除配置信息

5. git config --global  user.email guiyy@playhudong.com     //设置邮箱

6. git config --global color.ui true      //配置颜色

7. cat ~/.gitconfig       //查看配置文件

8. git config --global alias.co checkout       //将checkout命令改成 co;  co会等效于checkout

二、基础 >> 项目中使用git

1. git init        //  项目中要使用 git ,先初始化  生成.git  文件

2. Cmd>>   cd ..   //返回上级 ; mkdir newfile   //创建新文件夹 ; dir  //查看文件目录

3. 不想用git跟踪,直接删除.git文件

4. Linux系统中,  ‘.’点开头的文件默认隐藏,  mac上 open .git  打开.git文件

三、git提交 >> 在项目根文件下

1. git status      //查看状态,所在分支,是否有修改文件

2. git add . 或  git  add  index.html    //准备提交所有修改文件 ,或index.html

3. git status      // 查看  多次使用

4. git commit -m ‘备注信息’      // 添加提交备注信息并提交

5. git log          //查看提交记录

6. git diff  或  git diff index.html      //查看本地文件与git文件区别

7. git commit -am ‘备注信息’         //快捷提交等效  git add. +  git commit -m ’’

四、重命名

  (1)方法一:

        例如:首先将本地 style.css  重命名为  theme.css   

        git的上的操作为:

             1. git status   //查看状态

             2. git rm style.css       //要重命名的文件

             3. git add theme.css  //新命名的文件

             4. git status

             5. git commit -m ‘把 style.css 重命名为 theme.css’     //提交修改

  (2) 方法二:

             1. git mv theme.css ning.css   // 把theme.css  命名为  ning.css

             2. git status

             3. git commit -m ‘....’  //提交修改

五、文件 >> 移动、删除、恢复

  1. 本地  mkdir 新建文件 css
  2. git status  //  git 跟踪文件  但不会发现空目录
  3. git mv ning.css css/     //把ning.css移动到 css文件夹下
  4. git commit -m ‘描述’     //提交修改

(1)将文件夹移动至另一文件夹

  1. mkdir asset   //新建文件夹
  2. git mv css asset/    //把css文件夹移至asset文件夹
  3. git status
  4. git commit -m ‘’

(2)删除文件

  1. git rm js/index.js   // 删除多个文件使用空格并列
  2. git status
  3. git commit -m ‘’   

(3)恢复文件  

      (3.1)删除后立即恢复  

  1. git rm index.html  //  删除,未提交
  2. git status
  3. git checkout HEAD -- index.html  //恢复:head表示最近的提交;  -- 当前分支; index.html 要恢复的文件
  4. git status

       (3.2)删除并提交,再恢复

     1.git rm index.html  //删除

     2.git commit -m ‘’    //提交

     3.git status              //查看状态

     4.git checkout HEAD^ -- index.html      //恢复:^表示恢复到上次提交的状态;^^上两次前

     5.git commit -m ‘’    // 重新提交

(4)恢复历史版本

  1. git status;git add. ;git commit -m ‘’   //  第一次修改提交
  2. git status;git add. ;git commit -m ‘’   //  第二次修改提交
  3. git log   //查看提交日志   提交的id
  4. git revert bb95e87   //bb95e87提交的id  恢复到id对应的版本
  5. 回车后 git默认打开一个编辑器 可以输入 描述信息
  6. 输入  :wq       //冒号wq,保存
  7. git log            //查看提交日志  最近提交

六、重置 >> 控制git头部指针 

例如:项目提交了十次 id1...id10;   默认:指针指向最后一次提交

--soft:软重置,不会影响工作区和暂存区文件;

--hard:硬重置,直接将工作区和暂存区重置到指定状态;

--mixed:默认,将暂存区重置到指定状态,并且指针指向指定位置;

  1. git log --oneline     //查看提交日志 一行一条显示;
  2. git reset --soft id7  //软重置到id7,指针指向id7
  3. git log --oneline   
  4. git status               // 查看 修改的状态  已经在暂存区了
  5. 提交 会覆盖id7后的提交
  6. 同理  --hard  --mixed
  7. 重置到id7后,可以恢复重置到id10; git reset --hard id10

 七、工作进度 >> 修改 、恢复 、删除  

场景:在human.text中添加文字, 执行git stash save 后,human.text恢复到添加文字之前的状态;>>修改状态被保存起来了  不会被提交

  1. git stash save ‘修改了  human.text’      // 保存当前的工作进度
  2. git  status         //   提示无修改  
  3. git stash list      //查看保存的进度  stash@{0}:>>进度代号
  4. git stash show -p stash@{0}     //对比进度与当前工作的区别
  5. git stash apply stash@{0}         //恢复使用保存的工作进度
  6. git stash drop stash@{0}          //删除保存的工作进度
  7. git stash pop stash@{0}           //找回删除的进度

八、日志>>提交、查看、查找

按f键 -下翻页; 按b键 - 上翻页; 按q键 - 退出信息;

  1. git log                      // 默认 详细的 提交日志 id ,作者author ,日期 date
  2. git log --oneline       //简单日志列表  id  +描述
  3. git log --oneline -5   //最近5条
  4. git log --oneline --author=’xiaoyang’         //指定作者的提交日志
  5. git log --oneline --grep=’index.html’          //搜寻含有index.html的提交
  6. git log --oneline --before=’2018-07-05’     //查询某日期前的提交
  7. git log --oneline --before=’1 week’            //查询一周前的提交 或 3 days
  8. git log --oneline --graph                //显示图形效果
  9. git help log                                    //查看log相关的使用手册
  10. git log --oneline --decorate           //显示修改
  11. git log --oneline --decorate --all    //显示修改

九、分支

  1. git status                                                   // 查看当前所在分支
  2. git branch                                                  //查看所有分支以及当前分支
  3. git branch mobile-dev                               //创建分支
  4. git checkout mobile-dev                           //切换分支
  5. git diff master..mobile-dev                        //对比两个分支的所有区别,中间两个点
  6. git diff master..mobile-dev index.html      //对比两个分支中文件的区别
  7. git merge mobile-dev                               // 把mobile-dev分支  合并到当前分支
  8. 分支合并冲突:列入两个分支中的index.html都修改了<title>master</title>、<title>mobil</title>;合并后会提示,手动去文件删除不想要的title,再执行git commit;
  9. git branch -m bugfix bugfix-1                   //把bugfix分支重命名为bugfix-1
  10. git branch -d bugfix-1                               //删除分支bugfix-1
  11. git push --set-upstream origin dev          // 将本地dev分支推送远程dev分支(此时远程还没有dev分支)

十、远程操作

    1. movietalk>git init           //项目文件movietalk中初始化git

    2.movietalk>git remote add origin https://github.com/guiyangyang/movietalk.git  

                                        // 本地推送至GitHub ; origin 远程名称

    3. git remote 或  git remote -v  //查看

    4. git push -u origin master        //推送本地分支master;-u 跟踪远程变化

    5. git branch -r                           //查看远程分支

    6. git push origin mobile-dev     //推行分支,没使用-u 不会跟踪远程分支变化

十一、克隆

(1)克隆自己github上的项目:

  1. Desktop>git clone https://github.com/wanghao8080/movietalk.git      //远程项目克隆到桌面
  2. Desktop>git clone https://github.com/wanghao8080/movietalk.git movie_new  

                                                  //远程项目克隆到桌面的movie_new 文件夹保存

(2)克隆别人项目,当别人修改了项目时,需要命名获取更新>>

  1. cd movie_new; git status    // 提示 当前分支(origin/master) 无更新变化(实际对方已更新)    
  2. git fetch      //获取更新 提示:获取一个更新,并放在本地origin/master上;
  3. git status    //提示  有一个更新
  4. git merge origin/master   //合并
  5. git status    //提示  当前已更新一致

(3)利用别人的项目,继续自己的开发

  1. 点击他人github项目右上角的  Fork ;将项目保存到自己的github;
  2. git clone  到本地
  3. 进入项目目录:vim README.md     //查看项目介绍 使用;编辑添加
  4. git add.   git commit -m ‘添加了 README.md 文件’    //提交自己的修改
  5. git push origin master     //推送至远程

(4)向别人的项目,提供自己的修改的代码

  1. 点击自己github上的 new  pull request 进行操作;

(5)为项目添加 协作开发人员

  1. 点击 github  边栏的settings;>>点击collaborators>>添加

十二、给项目打标签

  1. git commit -m ‘hello’        //  第一次提交
  2. git tag v0.1                      //在当前提交点上打上标签v0.1
  3. git tag                              //查看标签列表
  4. git show v0.1                   //查看标签信息
  5. git commit -m ‘hola’         // 修改文件后 第二次提交
  6. git tag -a v0.2 -m ‘hola’    //添加标签并注释
  7. git checkout v0.1              //查看文件在标签v0.1时的内容,此时编辑器查看文件内容
  8. git log                               //查看提交日志
  9. gittag -a v0.0 id07 -m ‘zhushi’                  //给id07提交打上标签
  10. git tag -d v0.0                                           //删除标签
  11. git push origin v0.2  或 git push --tags     //远程推送标签