1. SVN 与 GIT 的区别
SVN 是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器那里得到最新版本,然后干活,完了之后把自己做的东西推送到中央服务器;
GIT 是分布式版本控制系统,它没有中央服务器,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上面。
2. 如何操作
git init 目录变成git可以管理的仓库
当即项目的目录中会出现一个 .git 的目录,用来跟踪管理版本;
1). 使用 git add readme.txt 添加到暂存区(没有任何提示则表示成功);
2). 用命令 git commit 告诉 git ,把文件提交到仓库 (git commit -m " 提交注释");
3). git status 查看状态,是否还有文件未提交;
4). 版本回退:git log(查看历史版本) git reset --hard HEAD~100(回退到第几个版本,~后面的数字代表第几个版本)
5). 获取到版本号:git reflog
3. 理解工作区与暂存区的区别?
工作区:就是你在自己电脑上面看到的目录,比如目录下 test 里的文件 (.git隐藏目录版本库除外),或者以后需要再新建的目录文件等等都是属于工作区范畴。
版本库:工作区有个隐藏目录 .git ,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是 stage(暂存区),还有 git 为我们自动创建了第一个分支 master ,以及指向 master 的一个指针 HEAD 。
使用 Git 提交文件到版本库有两步:
第一步:git add 把文件添加进去,实际上就是把文件添加到暂存区;
第二步:git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支上;
4. git checkout --readme.txt 把 readme.txt 文件在工作区做的修改全部撤销;
注意:git checkout --readme.txt 中的 -- 很重要,如果没有 -- ,那么命令就变成创建分支了。
5. 删除文件。 rm 文件名;
6. 远程仓库
把本地内容推送到远程,使用 git push 命令,实际上是把当前分支 master 推送到远程。
git pull 抓取仓库最新文件,有冲突,解决冲突再进行 push ;
只要本地有提交,就可以通过 git push origin master , 把本地 master 分支的最新修改推送到 github , 现在你就拥有了真正的分布式版本库了。
7. 创建与合并分支
在版本回退里,已经知道,每次提交,Git 都把他们串成一条时间线,这条时间线就是一个分支。截止目前,只有一条时间线,在Git里,这个分支叫主分支,即 master 分支 。HEAD 严格来说不是指向提交,而是指向 master ,master 才是指向提交的,所以,HEAD 指向的就是当前分支。
git checkout 命令加上 -b参数表示创建并切换,相当于如下 2 条命令:
git branch dev
git checkout dev
git branch 查看分支,会列出所有的分支,当前分支前面会添加一个 “*” 星号。
git merge 命令用于合并指定分支到当前分支上;
总结创建与合并分支命令如下:
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建 + 切换分支:git checkout -b name
合并某分支到当前分支:git merge name
删除分支:git branch -d name
多人协作:
首先 git push origin branch-name 推送自己的修改;
如果推送失败,则是因为远程分支比你的本地更新早,需要先用 git pull 试图合并;
如果合并有冲突,则需要解决冲突,并在本地提交。再用 git push origin branch-name 推送;
原文链接:https://www.imooc.com/article/20411
原文:https://www.cnblogs.com/wangqian888/p/12603505.html