Git源代码管理

  Git(多人协同开发同一个项目),作用就是源代码管理,为什么需要源代码管理呢,方便多人协同开发,并且方便版本控制。

Git管理源代码特点:

  1、Git是分布式管理。服务器和客户端都有版本控制能力,通过代码的提交与合并。(意思就是说每台电脑都可以有版本控制能力,代码管理能力)。

  2、Git会在根目录下创建一个.git隐藏文件夹,作为本地代码仓库。

Git操作流程:

Git服务器------>本地仓库(.Git)-------->客户端------->本地仓库------>Git服务器

从图中可以看出,从远程仓库clone数据到本地仓库(.git),然后在客户端上编辑等,commit到本地仓库,然后在把本地仓库push给远程仓库(即服务器仓库),远程仓库pull到本地仓库,在到客户端。

工作区暂存区和仓库区

  工作区:

 对于添加,修改,删除文件的操作,都发生在工作区中。

  暂存区:

暂存区指将工作区中的操作完成小阶段的存储,是版本库的一部分。  

  仓库区:

仓库区表示个人开发的一个小阶段的完成

  1、仓库区中记录的各版本是可以查看并回退的

  2、但是在暂存区的版本一旦提交就再也没有了 

Git单人本地仓库操作

  本地仓库是个隐藏文件(.git)。

1、安装git(linux系统)(windows百度)

sudo apt-get install git

2、检查安装结果

git

3、创建项目(linux直接在桌面创建文件夹)

    在F盘目录下创建一个文件夹gitTest,表示工作项目:

4、创建本地仓库

  进入到刚才创建的gitTest,并创建本地仓库.git,新建的本地仓库是个空仓库。

  1、

  2、创建仓库

git init

出现上面英文表示安装成功空仓库。

5、配置个人信息

  git config user.name 'lishuntao'
git config user.email '1259553287@qq.com'

打开查看隐藏文件,因为我们创建的项目是隐藏的。

6、新建py文件

  在项目文件gitText里面创建login.py文件,用于演示。

 7、查看文件状态

git status

红色表示新键文件或者新修改的文件,都在工作区。绿色表示文件在暂存区。新建的login.py文件在工作区,需要添加到暂存区并提交到仓库区。

8、将工作区文件添加到暂存区

git add login.py#添加指定文件

git add . #添加所有文件

 9、将暂存区文件提交到仓库区

git commit -m "版本描述"

commit会生成一条版本记录 -m后面是版本描述信息

 10、接下来可以在login.py文件中编辑代码

代码编辑完成后即可进行addcommit操作,还有添加和提交的合并命令

git commit -am "版本描述"

11、查看历史版本

git log

git reflog#都是一样的

12、回退版本

  1、

HEAD表示当前最新版本
HEAD^表示当前最新版本的前一个版本
HEAD^^表示当前最新版本的前两个版本,以此类推...
HEAD~1表示当前最新版本的前一个版本
HEAD~10表示当前最新版本的前10个版本,以此类推...
git reset --hard HEAD^

 2、当版本非常多的时候选择的方案(通过每个版本的版本号回退到指定版本)

git reset --hard 版本号

文件为空!!!!说明跳转到第一次的版本了。

13、撤销修改

只能撤销工作区、暂存区的代码,不能撤销仓库区的代码。撤销仓库区的代码就相当于回退版本操作。

  撤销工作区代码

git checkout 文件名

撤销暂存区代码

# 第一步:将暂存区代码撤销到工作区
git reset HEAD 文件名
# 第二步:撤销工作区代码
git checkout 文件名

 14、对比版本库

新加代码 sum4 = 40,不add到暂存区:

对比版本库与工作区:

git diff HEAD -- login.py

 对比版本库

git diff HEAD HEAD^ -- login.py

 15、删除文件:删除文件分为确定删除和误删

在项目中新建test.py文件,并添加暂存区和提交到仓库。

确定删除处理:

# 删除文件
rm 文件名
# git确定删除文件,对比添加文件git add
git rm 文件名
# 删除后记录删除操作版本
git commit -m '删除描述'

误删处理:撤销修改即可:

  # 删除文件(误删)
rm 文件名
# git撤销修改
git checkout -- 文件名

最新文章

  1. [Java 实现AES加密解密]
  2. c++ ado 调用存储过程并得到输出参数和返回值
  3. webAPI 自动生成帮助文档
  4. 剑指Offer41 反转单词顺序,单词字符顺序不变
  5. Top 10 Algorithms for Coding Interview--reference
  6. AS3给显示对象加边框
  7. application windows are expected to have a root view controller错误
  8. Android使用webService
  9. Raft详解分析
  10. Spring MVC的handlermapping之BeanNameUrlHandlerMapping初始化
  11. 浅谈MVC中的service层(转)
  12. Topcoder SRM590 Fox And City
  13. 关闭AutoCAD 2019快速访问工具栏的web和moblie保存文件功能
  14. nodejs 后台开发 和C++代码开发
  15. ehcache、redis应用场景比较
  16. poi中如何自定义日期格式
  17. ubuntu 添加多个IP
  18. C# 工具类之数据库链接
  19. 使用百度地图LBS创建自定义标注
  20. 注册google账号时出现手机号的问题

热门文章

  1. pwn-200
  2. (day69)axios、配置ElementUI、配置jQuery和Bootstrap、Django中的CORS问题
  3. Spring Cloud Alibaba 实战(十一) - Spring Cloud认证授权
  4. 【ST开发板评测】Nucleo-F411RE开箱报告
  5. Postman安装出错.NET Framework 4.5 failed to install
  6. 【转载】Android App应用启动分析与优化
  7. Spring Boot 2 + Redis例子
  8. none 和 host 网络的适用场景
  9. rman备份有效性验证/恢复进度监控
  10. C#后台架构师成长之路-高阶知识体系核心