四: git常用命令

1:更新: 更新后,更新只在Workspace中,没有到暂存区。git status可以查看当前状态。

             git add <file>  可以放到待提交区。

        git  checkout --<file>   可以放弃更改 ,  本地的修改都会被覆盖

2: 对于已经提到待提交区的:  

            git   reset   HEAD   <file>    可以把文件在放回workspace。

            git  commit -m   "message"   可以提交文件

3: 对于已经commit的,

         git log  // 查看commit的历史记录。                                        

          git revert HEAD    // 撤销最近大一个提交

4: git diff:               //workSpace中的文件和暂存区文件的差异。

           git diff HEAD~n              // workspace中的状态和REPO中的状态进行diff.  

5  综上所述,   撤销更新:更新存在3个地方:  workspace,   Stage,  repo中,

           A: 撤销WorkSpace中的更新:git checkout -- <file>   //这种方式已定要谨慎,撤销后找不回来   

           B: 撤销stage中的更新:   git reset HEAD <file>                     //   把暂存区的文件移动到workspace

                                                       git rest  --hard HEAD            //       是不可以恢复的

           C:撤销repo中的更新:

                                                       git log  // 查看commit的历史记录。   git revert HEAD    // 撤销最近大一个提交

: q    //退出VIM模式。

7: 查看远程版本库信息

             git  remote show

8: 创建分支:     git  branch develop

              这个分支新建后,是在本地,如何推送到remote呢?

              git push --set-upstream origin hhh                

 9:  切换分支:      git checkout develop 

10:   列出本地分支:  git branch       

           列出远程分支: git branch -r

     列出所有本地和远程分支:  git branch -a

11:     git branch   branchname               //  创建新分支,但是不切换过去

           git  checkout  branchname          //   切换到一个存在的分支

           git checkout -b [branch]                //   创建新分支,并切换到该分支(把上两步骤合并)

 12: 删除分支:

            首先当前分支不是要删掉的的分支,否则不可以删除

      git branch -D   branchtodelete       

           git  branch   -D   -r     origin/XXX  //  删除远程分支,可以先用git branch -r  列出远程分支   

13: 基于某个分支创建新分支

          git branch   XXX    //  就是基于当前所在的分支创建新分支

           git checkout -b   newbranch     baseBranch    //  基于basebranch创建newbranch.

14:   git  自动补全的功能

          在运行 git add 和 git branch -D  的时候,按Tab键,发现有自动补全的功能

15:git stash:

         git stash save -a "messeag"            //   把workspace的内容加入到stash 栈中

   git stash list       //  列出stash

Dell@DESKTOP-OSTGSI3 MINGW64 /d/eclipseWorkSpace/maven-web-sample (master)
$ git stash list
stash@{0}: On master: message
stash@{1}: WIP on master: be28beb toreset

Dell@DESKTOP-OSTGSI3 MINGW64 /d/eclipseWorkSpace/maven-web-sample (master)
$

    git stash pop stash@{0}  //   把最近的stash内容更新到workspace, 并且从栈中删除

           再执行  git stash list       //  列出stash

stash@{0}: WIP on master: be28beb toreset

   git stash apply <stash@{id}>  //  与git stash pop不同的是,这个执行完后,在stash栈中不删除

   git stash drop <stash@{id}>      // 把stash中的指定的drop掉

      git stash pop      //   不指定名字,弹出最新的

16:   merge  VS   rebase:

                       待续


           

posted @ 2017-09-10 15:10  刘大飞  阅读(173)  评论(0编辑  收藏  举报