一、Git是什么?
Git是一个开源的分布式版本控制系统。
1、什么是版本控制?
字面意思,控制版本,存储、追踪目录和文件的修改历史。市面上有各式各样的版本控制工具,比较常用的SVN、Git等等。
2、什么叫“分布式”版本控制?
(1)集中式:版本库存放在中央服务器
(2)分布式:没有中央服务器,版本库存在每个人自己的计算机上
3、概念
(1)工作目录(工作区,Woring Directory):执行git init的那个文件夹(linux上叫目录),里面有个.git目录
(2)版本库(Repository):工作区中的隐藏目录.git
版本库里有什么?
① 暂存区(stage或者index)
git add——把文件修改添加到暂存区
git commit,把暂存区的内容提交到当前分支(当前head指向的这个分支)
需要commit的文件事先全部放在暂存区->执行一次commit,全部提交->暂存区清空
② ....
(3)远程仓库:可以理解为“中央服务器”,远端的仓库
(4)本地仓库:你自己电脑上的仓库
(5)git仓库文件的两种状态:
① 被跟踪的(Tracked files):那些已经被提交到本地仓库的文件
② 未被跟踪的(Untracked files):那些未被提交到本地仓库的文件。比如,你在工作目录里新建一个文件,但是并没有执行add操作,所以当前此文件并不在本地仓库中,自然不被跟踪。
运行git status可以查看当前git仓库的状态
二、GitHub是什么?
首先它是一个免费的远程仓库,可以托管你的代码,同时,也是一个开源协作社区,可以让广大人民群众共同参与开发。
1、如何托管代码?
(1)点击“+”可以创建一个新的仓库
(2)法1:git clone 到你自己的计算机中的某个目录(工作区)
法2:利用Git Bash,用命令行操作。
① 若本地还没有仓库,git init一个—>把代码放进去,git add、git commit—>git remote add origin git@github.com:userName/gitName.git—>git push
② 若本地有仓库,第一步就可以省了
2、如何修改别人的代码
(1)Fork开源仓库
以https://github.com/poise/python 为例,在项目主页可以看到作者的仓库地址 https://github.com/poise/python.git,但是你不能直接克隆作者的这个仓库地址,因为你没有权限推送修改。点击“Fork”在自己的账号下克隆一个仓库
(2)clone自己的仓库地址 git@github.com:UserName/python.git,再克隆到本地计算机进行一系列修改,之后再推送自己的GitHub仓库上
(3)在GitHub上发起一个pull request,若对方接受就接受,不接受就算了...........
四、git操作
1、创建一个本地仓库,并托管在GitHub上,push文件
从GitHub克隆一个仓库,不用git init,也可以创建一个本地仓库
2、分支控制
HEAD指针:指向的是当前分支
master分支:主分支
新建分支dev,创建dev指针,dev指针指向master相同的提交,HEAD指向dev
合并分支:在dev上修改,之后把dev合并到master上——将master指针指向dev的当前提交
删除分支:删除dev指针