Git基础教程

  • 2020-01-03
  • 36
  • 0

一:Git是什么?

Git是目前世界上最先进的分布式版本控制系统。
工作原理 / 流程:

Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库

我经常使用的图形化工具: GitExtension.挺不错的.

注意事项:
首先要明确下,所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道。

二:实际操作

一:创建版本库

选择一个目录,或者创建一个目录.切换到当前目录下.
mkdir test
通过命令 git init 把这个目录变成git可以管理的仓库
后续可以通过clone,或者add文件然后commit,

二:版本回退:

git reset [commit]
git revert [commit]

git reset有三个参数soft,mixed,hard分别对应head的指针移动,index(暂存区)、以及工作目录的修改,当缺省时,默认为mixed参数。
git revert与reset的区别是git revert会生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留,也就是说对于项目的版本历史来说是往前走的。而git reset则是回到某次提交,类似于穿越时空。

git reset指令
git reset --hard HEAD^ 那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset --hard HEAD~100 即可

总结:
但是如要要保持版本历史干净的话,建议还是用 git reset,但是希望保留完整的历史的话,还是使用git revert为好。对于和其他人协同的项目,使用git rever是最好的。

三:理解工作区与暂存区的区别?

工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。

我们前面说过使用Git提交文件到版本库有两步:
第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。
第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。

四:Git撤销修改和删除文件操作。

第一:如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区,最后commit掉。

第二:我可以按以前的方法直接恢复到上一个版本。使用 git reset –hard HEAD^

五:远程仓库。

建议配合github/gitLab做管理.

六:创建与合并分支。

在 版本回填退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。

总结创建与合并分支命令如下:

查看分支:git branch

创建分支:git branch name

切换分支:git checkout name

创建+切换分支:git checkout –b name

合并某分支到当前分支:git merge name

删除分支:git branch –d name

本文参考:
Git使用教程
Git-撤销(回退)

0

评论

还没有任何评论,你来说两句吧