一、本地创建git版本库
在本地随便找个空文件夹 或者 新建一个空文件夹 初始化一下
$ mkdir newgit    //新建一个空目录
$ cd newgit       //进入
$ git init        //使用git init命令 初始化一个Git仓库二、添加文件到Git仓库,分两步
- 使用命令git add <file>,注意,可反复多次使用,添加多个文件 或者git add .添加所有修改; //将修改放入暂存区
- 使用命令git commit -m <message>,完成。 //把暂存区的修改提交
三、掌握工作区状态
- 使用git status命令 查看当前工作区状态
- 如果git status告诉你有文件被修改过,用git diff可以查看修改内容
四、版本回退
- 用git log可以查看提交历史,以便确定要回退到哪个版本$ git log //查看历史详细信息 $ git log --pretty=oneline //只查看历史commit_id(版本号)
- 使用 git reset --hard commit_id  穿梭到指定版本 $ git reset --hard HEAD // HEAD表示当前版本,HEAD^表示上一版本,HEAD^^上上版本 $ git reset --hard HEAD~100 //上100个版本 当然应该用不到 这么远的版本就用版本号直接转到了 $ git reset --hard 1094a2 //commit_id 写前几位就可以了 当然也可以都写上
- 版本回退错误,想回到返回前的版本? 没问题 。用git reflog查看命令历史,以便确定要回到未来的哪个版本,再使用git reset --hard commit_id 穿梭版本
五、 撤销修改
-  git checkout -- <file>    把指定工作区的修改全部撤销 ,2种情况: 一种是file自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态; 一种是file已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。 总之,就是让这个文件回到最近一次 git commit或git add时的状态。
-  常用三个场景: 
-  场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令 git checkout -- file。
-  场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令 git reset HEAD <file>,就回到了场景1,第二步按场景1操作。
-  场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。 
六、 删除文件:要从版本库中删除该文件,那就用命令git rm file删掉,并且git commit
七、从远程仓库拉最新代码到本地 
复制 Git库的地址, 执行代码 git clone path
八、分支管理
-  查看分支: git branch
-  创建分支: git branch <name>
-  切换分支: git checkout <name>
-  创建+切换分支: git checkout -b <name>
-  合并某分支到当前分支: git merge <name>
-  删除本地分支: git branch -d <name>
-  删除远程分支:git push origin --delete <name>
-  强制删除分支: git branch -D <name>
九、 隐藏当前工作区修改
$ git stash           //隐藏当前工作区修改
$ git stash list      //查看隐藏列表//恢复隐藏 
//方法一
$ git stash apply    //恢复后,stash内容并不删除,你需要用git stash drop来删除
//方法二
$ git stash pop      //恢复的同时把stash内容也删了
十、远程仓库操作
当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。
           要查看远程库的信息,用git remote
显示更详细的信息要查看远程库的信息,用git remote -v
推送分支
推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上
$ git push origin master
推送其他分支
$ git push origin dev总结:
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突
十一、常见多人协作的工作模式:
-  首先,可以试图用 git push origin <branch-name>推送自己的修改;
-  如果推送失败,则因为远程分支比你的本地更新,需要先用 git pull试图合并;
-  如果合并有冲突,则解决冲突,并在本地提交; 
-  没有冲突或者解决掉冲突后,再用 git push origin <branch-name>推送就能成功!
-  如果 git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。