GIt仓库

1、把文件提交到版本库:

2、版本回退:

3、还原文件操作:

4、撤销修改:

5、删除文件:

6、添加远程库:

7、从远程库克隆:

8、创建和合并分支:

9、解决冲突:

10、分支管理:

11、Bug分支:

12、feature分支:

13、多人协作:

 

 

开始:

  1. 在电脑中有一个合适的位置创建一个空的文件夹
  2. 通过git init命令将这个文件夹变成Git可管理的仓库

把文件提交到版本库:

  1. 用git add + 文件名 将这个文件添加到暂存区
  2. git commit -m"" 在暂存区的文件提交到当前的分支。   引号内部是对本次提交的一个说明,要有意义的,这样就能从历史记录中找到改动记录。

  commit可以一次提交很多的文件,所以你可以多次add不同的文件然后再一次行commit。

版本回退:

  Git仓库中有一个HEAD指针,指向的是当前版本,Git可以在版本的历史之间来回穿梭:git reset --hard commit-id

  穿梭到前面的版本:可以使用git log查看提交日志,方便确定回退到哪一个版本。

  回来未来的版本: 用git reflog查看历史命令

还原文件操作:

  git checkout -- <filename> 会产生两种情况:1、在你做出修改后还没有添加到暂存区,现在撤销就是回到和版本库一摸一样的状态。 2、添加到了暂存区,又作了修改,现在撤销就是回到添加到暂存区后的状态

  总之就是可以回到最近一次git commit 或git add 时的状态

撤销修改:

  添加到了暂存区还没有提交,可以使用git reset HEAD <filename>可以把暂存区的修改撤销掉,重新放回到工作区。

删除文件:

  在文件管理器中可以直接rm <filename>但是这时候工作区和版本库就不一致了

  两个选择:1、确定要从版本库中删除该文件,就用git rm <filename>进行删除, 并且进行git commit。 2、删错了,那么版本库中还是存在的,可以使用git checkout -- <filename>将误删的文件恢复到最新版本。

  删除GitHub上的文件:git rm -r --cached <文件名>  完成这步操作之后还需要将这次操作进行一次commit,然后才能完成删除的整个过程

  git rm用于删除文件,如果文件已经被提交到了版本库,那不必担心误删,但是只会恢复到最新的一次提交,会丢失最近一次提交后修改的内容。

添加远程库:

  1. 登陆GIthub,创建一个新的仓库
  2. git remote add origin git@github.com:账户名字/仓库名字.git(origin是远程库的名字,轻易不要进行修改)
  3. 将本地库的内容推送到远程库中:git push -u origin master  (将本地的master分支推送到远程的master分支上)

  由于刚开始远程库是空白的,所以第一次推送master时要加上-u,之后Git不但会把本地的master分支上的内容推送到远程新的master分支,还会吧本地和远程连接起来,以后再推送就可以git push origin master

从远程库克隆:

  git clone git@github.com:账户名/仓库名.git

创建和合并分支:

  一开始master是一条线,Git用master指向最新提交,再用HEAD来指向master。每次提交master都会迁移一步,随着不断提交,master分支会越来越长。

  创建分支:创建一个dev分支并切换到dev分支:git checkout -b dev 这是将两步合成了一步1、git branch dev:创建dev分支 2、git checkout dev :切换到dev分支

  创建完成分支之后,进行你想要进行的一些修改,然后再切回到master分支

  合并分支:git merge + <分支名>用于合并指定的分支,直接将master指向了dev分支,在完成之后就可以删除dev分支了:git branch -d dev

解决冲突:

  当Git无法自动合并分支时,必须手动进行合并,解决之后再进行提交,合并完成。(其实就是把Git合并失败的文件手动编辑为我们希望的文件,再进行提交)

  git log --graph --pretty=oneline -abbrev-commit :查看分支合并图

分支管理:

  Fast Forward模式:这种方式删除分支会丢掉分支信息(Git默认的就是使用的这种方式)  

  如何要禁止Fast Forwar?  Git会在merge时生成一个新的commit,这就可以从历史上看出提交的信息了。

  创建dev分支

  修改文件并提交新的commit

  切回到master(主分支)

  最后进行合并分支git merge --no-ff -m"" dev

  首先master应该是非常稳定的,仅是用来发布最新的版本,每个人都应该拥有属于自己的分支,然后在dev上进行干活。

Bug分支:

  当出现Bug时,这时候手头上的工作也还没有完成,可以先git stash一下,然后去修改Bug,修复完成后,在git stash pop回到工作现场

feature分支:

  开发新的功能最好新建一个feature分支。

  如果要丢弃一个没有被合并过的分支,可以用git branch -D <分支名> 来进行强行删除

多人协作:

  从本地分支推送: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 remote remove origin

posted @ 2019-06-14 17:00  tulintao  阅读(218)  评论(0编辑  收藏  举报