GIt仓库
1、把文件提交到版本库:
2、版本回退:
3、还原文件操作:
4、撤销修改:
5、删除文件:
6、添加远程库:
7、从远程库克隆:
8、创建和合并分支:
9、解决冲突:
10、分支管理:
11、Bug分支:
12、feature分支:
13、多人协作:
开始:
- 在电脑中有一个合适的位置创建一个空的文件夹
- 通过git init命令将这个文件夹变成Git可管理的仓库
把文件提交到版本库:
- 用git add + 文件名 将这个文件添加到暂存区
- 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用于删除文件,如果文件已经被提交到了版本库,那不必担心误删,但是只会恢复到最新的一次提交,会丢失最近一次提交后修改的内容。
添加远程库:
- 登陆GIthub,创建一个新的仓库
- git remote add origin git@github.com:账户名字/仓库名字.git(origin是远程库的名字,轻易不要进行修改)
- 将本地库的内容推送到远程库中: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