Git代码版本管理工具

Git

Git 是分布式版本控制系统,源代码管理工具。
作用:
  方便协同开发、方便版本控制

  • 分布式管理:服务器和客户端都有版本控制能力,都能进行代码的提交、合并、…
  • Git会在根目录下创建一个.git隐藏文件夹,作为本地代码仓库

Git服务器 --> 本地仓库 --> 客户端 --> 本地仓库 --> Git服务器
结构划分为:工作区、版本库(暂存区、仓库区)、服务器云端;

  • 工作区:
    在IDE中进行文件的添加、修改、删除操作;
    文件添加、修改;
    文件删除;
    文件恢复;

  • 暂存区:
    存储每天中一小阶段的工作,是版本库的一部分;
    存储更改记录;
    查看记录git status;

  • 仓库区:
    在用户分支上存储每天的工作;

    • 仓库区表示个人开发的一个小阶段的完成
    • 仓库区中记录的各版本是可以查看并回退的
    • 但是在暂存区的版本一旦提交就再也没有了
      存储更改记录;
      查看历史记录 git reflog;
  • 服务器:
     存储每个成员的编码记录,每个成员

Git本地仓库操作:

 本地仓库是一个.git隐藏文件

  • 1.安装Git
    sudo apt-get install git
    git
    查看安装结果

  • 2.创建项目
    mkdir demo
    创建文件夹 demo,作为工作项目;

  • 3.初始化本地仓库 .git
    git init

  • 4.配置个人信息
    默认信息:全局配置里面的用户名和邮箱 全局git配置文件路径:~/.gitconfig
    git config user.name 'mophite' (可以试试zhangsan -->zhangsangfeng1)
    git config user.email '[email protected]'

  • 5.新建.py文件体验一下
    在项目文件内新建 test.py文件,git status查看文件状态(红色表示在工作区,绿色表示在暂存区)。

  • 6.跟踪文件(工作区文件添加到暂存区)

    # 添加项目中所有文件
    git add .
    # 添加指定文件
    git add login.py
    
  • 7.提交到仓库区
    commit会生成一条版本记录
    -m后面是版本描述信息
    git commit -m '版本说明'
     提交后,暂存区不再有文件,查看状态:干净的工作区。

  • 8.编辑代码,再次提交到仓库区,查看历史版本
    代码编辑完成后:
    git commit -am "更新说明"
    查看历史版本:

    git log		# 不能查看已经删除的文件 commit记录
    git reflog # 查看所有分支的所有操作记录
    
  • 9.版本回滚
    – 方法1
    git reset --hard HEAD^
    hard
    HEAD^(前一个版本)   HEAD^^(前两个版本) 类推
    HEAD~N (前N个版本)
    – 方法2
    git reset --hard 版本号
    版本号:

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

    • 撤销工作区代码
      新加代码,没有add到暂存区,保留在工作区:
      git checkout 文件名
    • 撤销暂存区代码
      新加代码,并add到暂存区:
      # 第一步:将暂存区代码撤销到工作区
      git reset HEAD  文件名
      # 第二步:撤销工作区代码
      git checkout 文件名
      
  • 11.对比版本

    • 对比版本库与工作区
      git diff HEAD -- test.py
      test.py是工作区的代码文件
    • 对比版本库
      新加代码,并add到暂存区
      git diff HEAD HEAD^ -- test.py
  • 12.删除文件

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

      – 确定删除处理:

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

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

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

Git远程仓库

https://github.com/

创建github仓库

1 注册github账户
2 创建仓库New repository
3 编辑仓库信息

repository name 必选
description 项目描述,建议写上
public 公有项目,免费的
README 项目说明文件,可选
add gitignore Python
license证书选none,其它的看明白了再选,小心吃官司交罚款
创建仓库完成

4 查看仓库地址
clone or download 选项有一个地址,必须复制下来。
下载别人的,一般都是压缩包。

克隆项目到本地

  • 1 克隆远程仓库
	cd Desktop/manager/
	git clone https://github.com/... .git
  • 2 配置身份信息
	cd Desktop/manager/test/
	git config user.name '管理者'
	git config user.email '[email protected]'

在config文件内可以看到

  • 3 推送新建的项目文件
    在test目录下,新建demo文件夹,内建demo.py
	# 工作区添加到暂存区
	git add .
	# 暂存区提交到仓库区
	git commit -m '立项'
	# 仓库区推送到远程仓库
	git push

可以在github网站看到新推送的文件。

  • 在 push 的时候需要设置账号与密码,该密码则是 github 的账号与密码
设置记住密码(默认15分钟):
git config --global credential.helper cache
如果想自己设置时间,可以这样做(1小时后失效):
git config credential.helper 'cache --timeout=3600'
长期存储密码:
git config --global credential.helper store
pycharm编辑器可以自动记住密码
  • 4 同步服务器代码
    git pull

  • 5 关联到远程库

    git remote add origin 你的远程库地址
    如:
    git remote add origin https://github.com/xxx.git

  • 6 获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败)
    git pull --rebase origin master

  • 7 本地库内容上传到云端,把当前分支master推送到远程。输入用户名、密码,验证通过后即开始上传。
    git push -u origin master

按照上述步骤,同一时间只有一人对代码进行操作,可以进行协同开发。

步骤总结:
 1 进入仓库
 2 同步下拉代码:git pull
 3 本地仓库记录版本:git commit -am ‘版本描述’
 4 推送代码到服务器就执行:git push
 5 编辑代码前要先pull,编辑完再commit,最后推送是push
但是:
 不可避免错误异常,下文。

代码冲突

积微于末,甚于雪崩
多人协同开发,不可避免,代码冲突问题。
多人同时修改某一文件,后上传的,无法正常上传
会影响正常开发进度,一旦出现代码冲突,必须马上解决再进行下一步开发工作。

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

  • 解决冲突
    1 协商解决,谁冲突谁解决
    2 保留所有代码,保留一人代码
    3 解决完,依然需要add、commit、push,在版本描述记录下来

标签

大的版本完成更新,对代码进行打包,加上版本标签。(备份大版本代码)

  • 打标签
    本地:
    git tag -a 标签名 -m '标签描述'
    推送到远程:
    git push origin 标签名
    可以在远程github网站查看标签结果
  • 删除标签
	# 删除本地标签
	git tag -d 标签名
	# 删除远程仓库标签
	git push origin --delete tag 标签名

分支

master 分支 --> v1.0 --> v2.0 -->
dev 分支(开发版本) --> 开发新功能模块 --> 可以合并dev到master

查看当前分支:
git branch
创建并切换到dev分支:
git checkout -b dev
设置跟踪(将分支推送到远程):
git push -u origin dev
管理分支的代码:
add、commit、push
操作一样,但是和主分支是相互独立的。
分支合并:
 1 先切换到master分支:checkout
  git checkout master
 2 dev分支合并到master分支:merge
  git merge dev
 3 推送合并分支:
  git push
 4 提醒他人下拉云端代码
  git pull

猜你喜欢

转载自blog.csdn.net/weixin_40302130/article/details/83996940