Git(多人协同开发同一个项目),做用就是源代码管理,为何须要源代码管理呢,方便多人协同开发,而且方便版本控制。linux
Git管理源代码特色:git
一、Git是分布式管理。服务器和客户端都有版本控制能力,经过代码的提交与合并。(意思就是说每台电脑均可以有版本控制能力,代码管理能力)。windows
二、Git会在根目录下建立一个.git隐藏文件夹,做为本地代码仓库。服务器
Git操做流程:分布式
Git服务器------>本地仓库(.Git)-------->客户端------->本地仓库------>Git服务器spa
从图中能够看出,从远程仓库clone数据到本地仓库(.git),而后在客户端上编辑等,commit到本地仓库,而后在把本地仓库push给远程仓库(即服务器仓库),远程仓库pull到本地仓库,在到客户端。版本控制
工做区:code
对于添加,修改,删除文件的操做,都发生在工做区中。blog
暂存区:开发
暂存区指将工做区中的操做完成小阶段的存储,是版本库的一部分。
仓库区:
仓库区表示我的开发的一个小阶段的完成
一、仓库区中记录的各版本是能够查看并回退的
二、可是在暂存区的版本一旦提交就再也没有了
本地仓库是个隐藏文件(.git)。
一、安装git(linux系统)(windows百度)
sudo apt-get install git
二、检查安装结果
git
三、建立项目(linux直接在桌面建立文件夹)
在F盘目录下建立一个文件夹gitTest,表示工做项目:
四、建立本地仓库
进入到刚才建立的gitTest,并建立本地仓库.git,新建的本地仓库是个空仓库。
一、
二、建立仓库
git init
出现上面英文表示安装成功空仓库。
五、配置我的信息
git config user.name 'lishuntao' git config user.email '1259553287@qq.com'
打开查看隐藏文件,由于咱们建立的项目是隐藏的。
六、新建py文件
在项目文件gitText里面建立login.py文件,用于演示。
七、查看文件状态
git status
红色表示新键文件或者新修改的文件,都在工做区。绿色表示文件在暂存区。新建的login.py文件在工做区,须要添加到暂存区并提交到仓库区。
八、将工做区文件添加到暂存区
git add login.py#添加指定文件 git add . #添加全部文件
九、将暂存区文件提交到仓库区
git commit -m "版本描述"
commit会生成一条版本记录 -m后面是版本描述信息
十、接下来能够在login.py文件中编辑代码
代码编辑完成后便可进行add和commit操做,还有添加和提交的合并命令:
git commit -am "版本描述"
十一、查看历史版本
git log git reflog#都是同样的
十二、回退版本
一、
HEAD表示当前最新版本 HEAD^表示当前最新版本的前一个版本 HEAD^^表示当前最新版本的前两个版本,以此类推... HEAD~1表示当前最新版本的前一个版本 HEAD~10表示当前最新版本的前10个版本,以此类推...
git reset --hard HEAD^
二、当版本很是多的时候选择的方案(经过每一个版本的版本号回退到指定版本)
git reset --hard 版本号
文件为空!!!!说明跳转到第一次的版本了。
1三、撤销修改
只能撤销工做区、暂存区的代码,不能撤销仓库区的代码。撤销仓库区的代码就至关于回退版本操做。
撤销工做区代码
git checkout 文件名
撤销暂存区代码
# 第一步:将暂存区代码撤销到工做区 git reset HEAD 文件名 # 第二步:撤销工做区代码 git checkout 文件名
1四、对比版本库
新加代码 sum4 = 40,不add到暂存区:
对比版本库与工做区:
git diff HEAD -- login.py
对比版本库
git diff HEAD HEAD^ -- login.py
1五、删除文件:删除文件分为肯定删除和误删
在项目中新建test.py文件,并添加暂存区和提交到仓库。
肯定删除处理:
# 删除文件 rm 文件名 # git肯定删除文件,对比添加文件git add git rm 文件名 # 删除后记录删除操做版本 git commit -m '删除描述'
误删处理:撤销修改便可:
# 删除文件(误删) rm 文件名 # git撤销修改 git checkout -- 文件名