版本控制器:Git

# 达到多人协同开发的目的

安装

"""
1.下载对应版本:https://git-scm.com/download
2.安装git:在选取安装路径的下一步选取 Use a TrueType font in all console windows 选项
-- 安装成功后桌面右键可以看到git菜单
"""

工作流程图

搭建本地git仓库

将已有的文件夹作为git仓库
"""
>: cd 目标文件夹内部
>: git init
"""
在指定目录下创建git仓库
"""
>: cd 目标目录
>: git init 仓库名
"""

配置操作git的用户信息

当前仓库:局部
"""
>: git config user.name '用户名'
-- 用户名
>: git config user.email '用户邮箱'
-- 用户邮箱 注:在当前仓库下的config新建用户信息,只能在当前仓库下使用
"""
所有仓库:全局
"""
>: git config --global user.name '用户名'
>: git config --global user.email '用户邮箱'

注:在全局文件 C:\Users\用户文件夹\.gitconfig新建用户信息,在所有仓库下都可以使用
"""

常用指令

查看仓库状态
"""
# 当仓库中有文件增加、删除、修改,都可以在仓库状态中查看
>: git status  
-- 查看仓库状态
>: git status -s  
-- 查看仓库状态的简约显示
"""
工作区操作
# 通过任何方式完成的文件删与改
# 空文件夹不会被git记录
撤销工作区操作:改、删
"""
>: git checkout .
-- 撤销所有暂存区的提交
>: git checkout 文件名
-- 撤销某一文件的暂存区提交
"""
工作区内容提交到暂存区
"""
>: git add .  
-- 添加项目中所有文件
>: git add 文件名  
-- 添加指定文件
"""
撤销暂存区提交:add的逆运算
"""
>: git reset HEAD .
-- 撤销所有暂存区的提交
>: git reset 文件名
-- 撤销某一文件的暂存区提交
"""
提交暂存区内容到版本库
# git commit -m "版本描述信息"
撤销版本库提交:commit的逆运算
"""
回滚暂存区已经提交到版本库的操作:
  查看历史版本:
      >: git log
      >: git reflog
  查看时间点之前|之后的日志:
      >: git log --after 2018-6-1
      >: git log --before 2018-6-1
      >: git reflog --after 2018-6-1
      >: git reflog --before 2018-6-1
  查看指定开发者日志
      >: git log --author author_name
      >: git reflog --author author_name
  回滚到指定版本:
      回滚到上一个版本:
          >: git reset --hard HEAD^
          >: git reset --hard HEAD~1
      回滚到上三个版本:
          >: git reset --hard HEAD^^^
          >: git reset --hard HEAD~3
      回滚到指定版本号的版本:
          >: git reset --hard 版本号
          >: eg: git reset --hard 35cb292
"""

过滤文件

# .gitignore 文件
# 1)在仓库根目录下创建该文件
# 2)文件与文件夹均可以被过滤
# 3)文件过滤语法

""" 过滤文件内容
文件或文件夹名:代表所有目录下的文件或文件夹都被过滤
/文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤
目录/文件或文件夹名:代表特定目录下的文件或文件夹被过滤
"""

git vs svn

# 1、git是分布式的,每一个客户端均可以作为服务器为其他客户端提供代码
# 2、git有强大的分支管理机制,可以在子分支上开发,将最终的成果同步到主分支即可

Git线上操作

选择线上仓库

"""
1.注册码云账号并登录:https://gitee.com/
2.创建仓库(课堂截图)
3.本地与服务器仓库建立连接
"""
"""
1)本地配置线上的账号与邮箱
>: git config --global user.name "doctor_owen"
>: git config --global user.email "doctor_owen@163.com"

2)在本地初始化仓库(git init),并完成项目的初步搭建(项目架构)(一般都是项目负责人完成项目启动)
# 这个过程就是git的基础部分的本地操作

3)采用 https协议 或 ssh协议 与远程git仓库通信提交提交代码(一般都是项目负责人完成)
i) https协议方式,无需配置,但是每次提交都有验证管理员账号密码
>: git remote add origin https://gitee.com/doctor_owen/luffy.git # 配置远程源
>: git push -u origin master # 提交本地仓库到远程源 ii) ssh协议,需要配置,配置完成之后就可以正常提交代码
>: git remote add origin git@gitee.com:doctor_owen/luffy.git # 配置远程源
>: git push -u origin master # 提交本地仓库到远程源 iii)查看源及源链接信息
>: git remote
>: git remote -v iv)删除源链接
>: git remote remove 源名字 注:origin远程源的源名,可以自定义;master是分支名,是默认的主分支
"""
生成公钥
"""
1.参考帮助文档:https://gitee.com/help/
-- 仓库管理 => 公钥管理 => 生成/添加SSH公钥 >: ssh-keygen -t rsa -C "owen@163.com"
"""

git团队开发:重点

"""
管理员
1.管理员配置与线上账号密码系统的本地全局账号密码
>: git config --global user.name "doctor_owen"
>: git config --global user.email "doctor_owen@163.com"

2.本地初始化git仓库(可以建立一个项目架构)
1)创建项目
2)进入项目目录初始化仓库:
>: git init
3)提交代码到本地版本库
3.创建一个远程空仓库(码云)
4.将本地版本库同步到远程仓库
1)在本地仓库内添加远程仓库源,源名默认就采用origin,就采用https协议即可
>: git remote add origin https://gitee.com/doctor_owen/luffy.git
2)将本地版本库提交到远程版本库,需要远程仓库账号密码
>: git push -u origin master

开发者
5.要参与开发的成员配置本地全局账号密码
>: git config --global user.name "owen"
>: git config --global user.email "owen@163.com"

6.生成本机的SSH公钥提供给管理员
>: ssh-keygen -t rsa -C "owen@163.com"

管理员
7.添加开发者提供的公钥到 个人公钥 并非是 公钥,并给开发者提供远程仓库SSH地址
仓库 => 管理 => 添加公钥 => 添加个人公钥
SSH地址:git@gitee.com:doctor_owen/luffy.git

开发者
8.在本机任意合适位置clone远程仓库到本地
>: git clone git@gitee.com:doctor_owen/luffy.git

9.进入本地项目仓库进行开发,可以查看远程源
>: cd luffy
>: git remote -v
注:origin git@gitee.com:doctor_owen/luffy.git (fetch) & (push)

10.开发过程中要提交新功能时,一定要遵循先拉取(pull),在提交(push)
1)提交新功能(先提交,提交后拉取,可能就会出现冲突)
>: git add .
>: git commit -m '提交新功能的信息说明'
2)拉取远程仓库(不管本地是否已经和远程同步,每一次提交前都必须拉取)
>: git pull 源名 分支名 => git pull origin master
3)提交到远程仓库(现在是主分支)
>:git push 源名 分支名 => git push origin master
"""

多分支开发

分支操作
"""
1.创建分支
>: git branch 分支名

2.查看分支
>: git branch

3.切换分支
>: git checkout 分支名

4.创建并切换到分支
>: git checkout -b 分支名

5.删除分支
>: git branch -d 分支名

6.查看远程分支
>: git branch -a
"""

重点:冲突解决、分支合并

注意!!!!!!!

每次上传代码前一定要先拉后推!!!!!!

最新文章

  1. Maven详解
  2. SVG文件:从Illustrator导文件到Web
  3. CSS:布局的三个关键属性:float、position、display
  4. PHP GC垃圾回收机制之引用变量回收周期疑问
  5. QProcess进程间双向通信
  6. [转]MySQL 5.6 全局事务 ID(GTID)实现原理(二)
  7. Spring IOC及AOP学习总结
  8. Linux 2.6 完全公平调度算法CFS(Completely Fair Scheduler) 分析
  9. c#winform关闭窗口时触发的事件
  10. 功率W与dBm的对照表及关系(转)
  11. RabbitMQ消息队列(五)-安装amqp扩展并订阅/发布Demo(.Net Core版)
  12. MySQL常用字符串函数
  13. linux php7.2安装扩展memcached
  14. linux crontab 命令,最小的执行时间是一分钟,如需要在小于一分钟内重复执行
  15. android 如何调用 隐藏的 API 接口
  16. Java锁机制(一)synchronized
  17. Java中两个线程是否可以同时访问同一个对象的两个不同的synchronized方法?
  18. JavaScript学习 - 基础(一)
  19. 绝对定位后,position:absolute;不能使用margin: 0 auto;实现居中;
  20. Mysql中Left Join Right Join Inner Join where条件的比较

热门文章

  1. DG-V$MANAGED_STANDBY视图
  2. Chrome开发小技巧--浏览器控制台现写并运行js代码--snippets
  3. shell脚本一一项目4
  4. 16/7/11_PHP-日期和时间
  5. ECMAScript 2015 可迭代协议:迭代普通对象
  6. upc 组队赛18 STRENGTH【贪心模拟】
  7. Ubuntu下使用boost例子
  8. oracle三大范式
  9. 自动发现项目中的url
  10. List带索引的常用方法,以及集合的三种遍历