IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git初步了解 -> 正文阅读

[开发工具]Git初步了解

1.git源代码管理

  1. 思考:如何多人协同开发同一个项目?
  2. Git是目前世界上最先进的分布式版本控制系统(没有之一)
  3. 作用:源代码管理
  4. 为什么要进行源代码管理?
    1. 方便多人协同开发
    2. 方便版本控制
  5. Git诞生:
    1. 作者是Linux之父
    2. 当初开发Git仅仅是为了辅助Linux内核的开发(管理源代码)
    3. GitHub为开源免费项目提供Git存储
  6. Git管理源代码的特点:
    1. Git是分布式管理,服务器和客户端都有版本控制能力,都能进行代码提交,合并
    2. Git会在根目录下创建一个**.git**隐藏文件夹,作为本地代码仓库
    3. 在这里插入图片描述

2.Git单人本地仓库操作

  1. 安装git
sudo apt-get install git

  1. 查看安装结果
git
  1. 创建项目文件 test
  2. 创建本地仓库
    1. 进入test,并创建本地仓库 .git
    2. 新创建的本地仓库. .git是个空仓库
  3. git初始化
git init
  1. 配置仓库用户名与邮箱
    1. 默认不配置的话,会使用全局配置里面的用户名和邮箱
    2. 全局git配置文件路径:~/.gitconfig
git config user.name 用户名
git config user.email 提交邮箱
  1. 在项目文件创建py文件–login.py
  2. 查看文件状态
    1. 红色代表新建文件或新修改的文件,都在工作区
    2. 绿色代表文件在暂存区
  3. 查看文件状态
git status
  1. 跟踪文件(将文件提交到暂存区)
git add 文件名(.代表当前所有文件)
  1. 将修改内容放到暂存区(可以回退)
git add login.py
  1. 将暂存区内容提交到仓库区(commit会生成一条版本记录)
git commit -m '版本描述'
  1. 查看文件内容
cat login.py
  1. 查看日志
git log
查看所有版本信息
git reflog
  1. 版本回退
git reset --hard(强制性) HEAD^(^表示当前版本的前一个版本)
HEAD 表示当前最新版本
HEAD^ 表示当前版本的前一个版本
HEAD^^表示当前版本的前两个版本
HEAD^1表示前1个版本
HEAD^10表示前10个版本
  1. 回退到指定版本
git reset --hard c194322(版本号)

4.撤销工作区,暂存区代码

  1. 撤销修改

    1. 只能撤销工作区,暂存区代码,不能撤销仓库区代码
    2. 撤销仓库区代码相当于回退版本操作
    3. 撤销工作区代码
  2. 撤销暂存区代码‘

git reset HEAD login.py(文件名)
  1. 撤销工作区代码(回到前一次工作区)
git checkout 文件名

3.Git远程仓库GitHub

GitHub网站作为远程代码仓库时的操作和本地代码仓库一样的,只是仓库位置不同而已
GitHub–Add .gitignore:忽略文件是我们在写代码过程中(运行过程中)本地的一些文件,不需要提交到服务器进行代码管理
GitHub–Add a license: 多人开发协议,一般为MIT

在这里插入图片描述

  1. 远程仓库克隆到本地
#1.复制远程仓库地址
#2.cd 到项目文件
#3.执行
git clone 仓库地址
#4.在仓库文件中创建项目,其余与本地仓库操作一致,实现的也是对本地仓库的操作
#5.推送到远程仓库 git push
#其中:
	warning: push.default 尚未设置,它的默认值在 Git 2.0 已从 'matching'
	变更为 'simple'。若要不再显示本信息并保持传统习惯,进行如下设置:
	
	  git config --global push.default matching
	
	若要不再显示本信息并从现在开始采用新的使用习惯,设置:
	
	  git config --global push.default simple
	
	当 push.default 设置为 'matching' 后,git 将推送和远程同名的所有
	本地分支。
	
	从 Git 2.0 开始,Git 默认采用更为保守的 'simple' 模式,只推送当前
	分支到远程关联的同名分支,即 'git push' 推送当前分支。
	
	参见 'git help config' 并查找 'push.default' 以获取更多信息。
	('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,
	为保持兼容,请用 'current' 代替 'simple'#执行
sudo git config --global push.default simple
	
#其中
	remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
	remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
	fatal: Authentication failed for 'https://github.com/wphnb/Git_test.git/'

设置自己的token,用token代替密码

个人token设置

  1. 在家修改公司的文件及在公司继续家里的项目
    1. 复制远程仓库地址(限没有此仓库的本地仓库的适用)
    2. 克隆仓库到本地 (限没有此仓库的本地仓库的适用)
git clone 仓库地址
		3. 对项目进行修改
			1. 非第一次克隆
			2. 需执行 git pull
		4. 提交项目

4.多人协同操作

  1. 文件
.git --> 源代码仓库
LICENSE-->权限
.gitignore-->忽略文件
  1. 配置经理身份信息
cd 克隆的文件位置
git config user.name '经理'
git config user.email 'manager@163.com'
  1. 配置用户身份信息
git config user.name '张三'
git config user.email 'zhangsan@163.com'
  1. 提交报错
git push报错:
 fatal: unable to access 'https://github.com/.../.git': Could not resolve host: github.com
设置了:
git config --global http.sslVerify “false”
报错:
fatal: 配置变量 'http.sslverify' 的数字取值 '“false”' 设置错误: invalid unit
执行:
git config --global --edit
删除 sslVerify = “false” 保存退出
git push 成功!

可以在.git中config文件中的url添加用户名与token解决报错
http://用户名:token@github.com/wphnb/仓库名.git

  1. 总结
    1. 要使用git命令操作仓库,需要进入仓库内部
    2. 要同步服务器代码就执行 : git pull
    3. 本地仓库记录版本就执行: git commit -m ‘版本描述’
    4. 推送到服务器就执行: git push
    5. 编辑代码前先pul ,编辑完再commit ,最后推送是push

5.协同开发冲突

  1. 提示:多人开发避免不了出现代码冲突
  2. 原因:多人同时修改了同一个文件
  3. 冲突描述:
    1. 经理修改了login.py文件,造成git远程仓库有最新代码,张三在操作login.py文件时时没有pull ,自己新加的代码与经理的代码有冲突
  4. 解决:
    1. 原则:谁冲突谁解决,并且一定要协商解决.
    2. 方案:保留所有代码 或者 某一人代码
    3. 解决完冲突代码后,依然要add,commit,push
  5. 危害:
    1. 会影响正常的开发进度
  6. 容易冲突的操作方式:
    1. 多人同时操作了同一个文件
    2. 一个人一直写不提交
    3. 修改之前不更新代码
    4. 提交之前不更新最新代码
    5. 擅自修改同事代码
  7. 减少冲突的操作方式:
    1. 养成良好的操作习惯,先pull在修改,修改完立即commit,和push
    2. 一定要确保自己正在修改的文件是最新的
    3. 各自开发各自的模块
    4. 如果要修改公共文件,一定要先确认有没有人正在修改
    5. 下班前一定要提交代码,上班第一件事就是pull最新代码
    6. 一定不要擅自修改同事的代码

6.分支

在这里插入图片描述

  1. 作用:
    1. 区分生产环境代码以及开发环境代码
    2. 研究新的功能 或者 攻关难题
    3. 解决线上bug
  2. 特点:
    1. 项目开发中公用分支master,dev
    2. 分支master是默认分支,用于发布,当需要发布时将dev分支合并到master分支
    3. 分支dev是用于开发的分支,开发完阶段性的代码后,需要合并到master分支
  3. 涉及操作
#查看分支
git branch
#创建分支
git checkout -b pay  # 切换到一个新分支 'pay'
#切换分支
git checkout 分支名
#不同的分支,在提交后是互相看不见的
#合并分支(必须在主分支里)
git merge pay
#删除分支
 git branch -D merge
 #分支修改推送到服务器
 git push --set-upstream origin 分支名
 或者
 git push -u origin  order




  • 要想吃的饱,你得多动脑
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-22 11:08:46  更:2021-10-22 11:09:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/23 19:55:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计