Git基础

1.创建版本库

$ mkdir learngit        // 创建工作区(目录文件夹)learngit,命名最好都用英文
$ cd learngit       // 打开目录
$ pwd            // 查询存储位置
$ git init       // git init命令把这个目录变成Git可以管理的仓库,如果你没有看到 .git(Git版本库) 目录,那是因为这个目录默认是隐藏的,用

ls -ah命令就可以看见

//然后在learngit 文件夹中写入readme.txt文件,并写入内容
//这样就可以将写好的文件添加到版本库中

$ git add readme.txt  //命令git add告诉Git,把文件添加到仓库
$git commit -m "wrote a readme file"   //git commit告诉Git,把文件提交到仓库, git commit 命令执行成功后会告诉你,1个文件被改动(我们新添加的readme.txt文件),插入了两行内容(readme.txt有两行内容)。
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."  //add可以一次添加已经写好的多个文件,而commit可以一次就说明添加的所有文件。-m "修改的记录名"(最好清晰的指出)
2. 修改文件内容,查看与提交

$ git status     //  显示文件的状态,若修改了reradme.txt文件,此命令可以让我们时刻掌握仓库当前的状态,readme.txt被修改过了,但还没有准备提交的修改。
$ git diff        //显示修改的具体内容

3.版本回退

$ git log       //记录commit的不同(id不同),即显示上文的每次修改,是commit -m "修改的记录名",简化版本的为 $ git log --pretty=oneline
//首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交id,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

$ git reset --hard HEAD^ //把当前版本回归到上一个版本,就可以使用 git reset 命令、
$ cat readme.txt      //cat+文件名即查看文件内容
$ git reset --hard id    //就可实现跳转到那个版本的commit中,此 id 即为那时 提交 的 commit 的 id ,写前几位即可(具体参照廖雪峰官方
$ git reflog        //记录所有的 HEAD 的变化,因此即便你丢失关闭了命令行,你也能找出那个你需要版本的 commit 的 id.

4.每次修改,只有先将工作区的内容add放入暂存区(stage)后再commit放入master ,文本内容才能真正的被放在master中
5.撤回

$ git checkout -- readme.txt      //git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销
$ git reset HEAD readme.txt       //将文件撤回到工作区中,即从暂存区stage移回工作区
$ git reset --hard HEAD^/id       //将 MASTER 中的到上一次(以上的命令在执行时,Git的工作平台会显示相应的提示的,相应往上面推)
类似:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

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

  场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交

 
6.删除文件
$ rm test.txt                 //删除文件test.txt 
7.将文件推送到github (将本地库的master中的文件上传至github远程库)  

$ git remote add origin git@gtihub.com:your githubname/your_file_name.git    //远程推送至github
$ git push -u origin master              //第一次推送master分支的所有内容;
$ git push origin master                 //之后的每一次推送
 8.从远程库中克隆到本地库中

$ git clone git@git.com:your_github_name/your_file.git      //从远程库中克隆至本地库

9.分支管理

(1)定义:自己在github中拥有一个独立的工作空间,只要自己才能运用及看到的空间,便于工作。

(2)创建和切换至dev分支: $ git checkout -b dev 相当于 $ git branch dev + $ git checkout dev
 // 用 $ git branch 命令查看当前分支,当前分支前会有 * 号标志
(3)更改文本内容后,切换至master分支
$ git checkout master        // 切换后会发现本次更改的内容不见了,有回归到了本次未更改的状态

(4)合并分支,目的是将上次在dev分支下更改的内容合并到master分支
$ git merge dev 

(5) 删除分支 $ git branch -d dev  

(6)手动解决分支冲突 参照廖雪峰
//创建新分支后修改文本内容,然后add,commit,再返回master分支,再修改内容,再 add,commit 。之后合并时会发现有冲突,此时就手动在文本文件中删除那些---《《《信息,然后修改add ,commit,之后再删除分支。

posted @ 2016-03-28 22:02  aestheticism  阅读(222)  评论(0编辑  收藏  举报