Git 的流程讲解

论坛 期权论坛 脚本     
匿名技术用户   2021-1-5 05:50   11   0

一、 Git概念

Git 是目前世界上最先进的分布式版本控制系统(没有之一)

优点:1)方便多人协同开发 2)方便版本控制

二、 Git操作流程

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

三、 工作区、暂存区、仓库区

1. 工作区: 对于添加、修改、删除文件的操作,都发生在‘工作区’中 (红色文件)

2. 暂存区: 指将工作区中的操作完成小阶段的暂时存储。(绿色文件)

3. 仓库区: 1)仓库区表示个人开发的一个小阶段的完成

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

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

# 可以使用git status查看当前代码的状态,处于哪个区

四、 Git 单人本地仓库操作

1. 概念: 本地仓库是个.git隐藏文件;

2. 安装与查看

安装:sudo apt-get install git 或者 yum install git 查看: git

# 腾讯云服务器自带git

3. 创建项目,并在里面创建本地仓库

进入到test,并创建本地仓库.git;新创建的本地仓库.git是个空仓库

  cd Desktop/test/
  git init           # 创建本地仓库

git init 后,会创建一个 .git 的本地仓库,一般项目都和它同级放置

4. 配置个人信息 (用户名 +邮箱)

  git config user.name '张三'
  git config user.email 'zhangsan@163.com'

  #查看配置是否生效
  git config --list

#默认不配置的话,会使用全局配置里面的用户名和邮箱 全局git配置文件路径: ~/.gitconfig

5. 本地仓库搭建好了,可以测试了

在项目文件夹下,创建demo.py文件,用于版本控制演示

查看文件状态: git status

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

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

# 添加项目中所有文件 git add .

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

将暂存区文件提交到仓库区(本地仓库)

git commit -m '版本描述'

# commit会生成一条版本记录

# -m后面是版本描述信息

添加和提交的合并命令: git commit -am "版本描述"

查看历史版本

git log 或 git reflog

# git reflog 可以查看所有分支的所有操作记录(包括commit 和 reset 的操作),包括已经被删除的commit记录;

# git log 不能查看已经删除的 commit 记录

6. 版本的撤销与代码回退

说明: HEAD表示当前最新版本

HEAD^表示当前最新版本的前一个版本

HEAD^^表示当前最新版本的前两个版本,以此类推...

HEAD~1表示当前最新版本的前一个版本

HEAD~10表示当前最新版本的前10个版本,以此类推...

总结: (三个区域的操作,相当于把代码清除掉)
#仓库区的代码,版本回退:
git reset --hard HEAD^ 或者 git reset --hard 版本号

(版本回退上一个版本后,代码直接恢复到上一个版本,不会用add 或者commit后续操作 :nothing to commit, working directory clean 。 如果有回退之前的版本号,也可以复原代码,使用: git reset --hard 版本号

#暂存区代码,撤销修改:
1.git reset HEAD 文件名
2.git checkout 文件名

#工作区代码,撤销修改:
git checkout 文件名称

五、 Git 远程仓库--多人开发

1. 创建远程仓库

Git源代码仓库 https://github.com/

2. 克隆项目和多人协同开发

总结:
(配置和各种提交,拉取 均因在 Desktop/manager/test007/ 的文件 test007的项目文件夹下 )
经理工作:
0. 准备经理的文件 Desktop/manager/
1.git clone https地址或者ssh地址
cd Desktop/manager/
git clone https://github.com/***/test007.git

2.配置身份信息 ()
cd Desktop/manager/test007/
git config user.name '经理'
git config user.email 'manager@163.com'
3.创建项目
4.推送项目到远程仓库
# 工作区添加到暂存区
git add .
# 暂存区提交到仓库区
git commit -m '立项'
# 推送到远程仓库
git push

# 拉取更新
git pull


张三工作:
0.准备张三的文件 Desktop/zhangsan/
1.克隆项目到本地
2.配置张三身份信息
3.模拟张三同步服务器代码 一般需要先 git pull 再进行开发;步骤和 manager一致

建议:长期存储密码:
git config --global credential.helper store

3. 代码冲突

总结:
提示:多人协同开发时,避免不了会出现代码冲突的情况
原因:多人同时修改了同一个文件
危害:会影响正常的开发进度
注意:一旦出现代码冲突,必须先解决再做后续开发


减少冲突的操作方式

1.养成良好的操作习惯,先pull在修改,修改完立即commit和push
2.一定要确保自己正在修改的文件是最新版本的
3.各自开发各自的模块
4.如果要修改公共文件,一定要先确认有没有人正在修改
5.下班前一定要提交代码,上班第一件事拉取最新代码
6.一定不要擅自修改同事的代码

冲突案例 比如: zhangsan增加了代码,然后push 到了 git 上; manager 没有先 pull , 直接在相同文件下开发,manager add , commit 都会正常,但当 push 到 git 时,会有冲突导致报错;

解决: 1. 先 git pull 拉取代码

2. 提示冲突文件,打开文件解决冲突,删掉冲突代码 和提示标识 "<<<<<" 与"========="

3. 解决完冲突代码后,依然需要 add 、commit 、 push

4. 标签

当某一个大版本完成之后,需要打一个标签用于 记录大版本 或者 备份大版本代码

1. 进入本地仓库 (与 .git 同级的文件夹下)

2. 本地打标签 git tag -a 标签名 -m '标签描述'
例: git tag -a v1.0 -m 'version 1.0'

3. 推送标签到远程仓库 git push origin 标签名

git push origin v1.0

4. 删除本地和远程标签

# 删除本地标签 : git tag -d 标签名

# 删除远程仓库标签: git push origin --delete tag 标签名

5. 分支

1. 分支的作用

1) 区分生产环境[master主分支]代码以及开发环境代码[dev分支]

2) 研究新的功能或者攻关难题

3) 解决线上bug

2. 查看当前分支 git branch

3. 创建分支步骤

1)创建并切换到 dev 分支

git checkout -b dev

2)设置本地分支跟踪远程指定分支(将分支推送到远程)

git push -u origin dev

3) 修改 dev 分支源代码: add 、commit 、 push

4) dev 分支合并到 master 分支

(1) 先切换到主分支: git checkout master

(2) dev 分支合并到 master 分支: git merge dev

5) 合并分支默认在本地完成,合并后直接推送即可

git push

#案例: 如果在zhangsan 创建了分支 test 01 , 然后在里面修改了代码; 正好在这个期间,其他人也修改了相同文件夹,并push 到了master分支上。 zhangsan 在 test01 分支上 git push 会报错。

# 解决: 两种方式:

1) 指定分支push -- git push origin branchName , 合并主分支,在主分支提交时,处理冲突

2)可以切换到master主分支,先 git pull 更新最新的mastet 分支代码;再切换到 test01 进行 push 与 合并

# 有些冲突的解决,需要你指定分支操作

# 推送到指定分支: git push origin branchName

# 拉取指定分支: git pull origin master

--------------------------------常用 必须掌握-------------------------------------

# 初始化一个git仓库 让项目文件夹使用git管理起来 产生一个.git隐藏文件夹(本地仓库)
git init

# 查看当前处于状态
git status

# 将工作区代码提交到暂存区
git add .

# 将暂存区代码提交到本地仓库
git commit -m "提交的备注"

# 将本地仓库代码-->推送到远程仓库
git push

# 拉取远程仓库最新代码
git pull

# 查看日志/详细日志
git log/reflog

# 第一次克隆项目到本地
git clone 远程仓库地址(https)

# 创建分支并切换分支
git checkout -b 分支名称

# 切换分支
git checkout 分支名称

#合并分支
git checkout master
git merge dev

--------------------------------不太常用会copy-------------------------------------
# 版本回退(本地仓库)
git reset --hard HEAD^
git reset --hard 版本号

#从暂存区撤销
git reset HEAD -- 文件名
git checkout 文件名

# 检出 (工作区撤销)
git checkout 文件名

# 切换分支
git checkout master

# 查看当前分支
git branch

# 删除
git rm

# 创建标签
git tag -a 标签名 -m '标签描述'
# 推送标签到远程仓库

1. 工作区 add commit push pull (pycharm实际操作中)

一般新建文件后,需要使用 add

如果在已提交的代码上修改, 一般是 commit , 然后直接 push

拉取到本地,可以先使用 pull ; 如果有冲突,可以先commit ,然后再pull

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP