GIT

xiaoxiao2021-02-28  65

Git简介

作用:源代码管理 # 为什么要进行源代码管理 - 方便多人协同开发 - 方便版本控制 # Git管理源代码特点 1. Git是分布式管理服务器和客户端都有版本控制能力,都能进行代码的提交、合并、。。。 2. Git会在根目录下创建一个.git隐藏文件夹,作为本地代码仓库 # Git操作流程图 Git服务器-->本地仓库-->客户端-->本地仓库-->Git服务器

工作区暂存区和仓库区

工作区:对于添加、修改、删除文件的操作,都发生在工作区中暂存区:指将工作区中的操作完成小阶段的存储,是版本库的一部分仓库区:表示个人开发的一个小阶段的完成 仓库中记录的各版本是可以查看并回退的但是在暂存区的版本一旦提交就再也没有了

Git单人本地仓库操作

# 流程 # 安装git sudo apt-get install git 密码:******23 # 查看git安装结果 git # 创建项目 - 在桌面创建test文件夹,表示是工作项目 Desktop/test/ # 创建本地仓库 - 进入到test, 并创建本地仓库.git - 新创建的本地仓库.git是个空仓库 cd Desktop/test git init # 配置个人信息 git config user.name '张三' git config user.email 'zhangsan@163.com' # 新建py文件 - 在项目文件test里面创建login.py文件,用于版本控制演示 # 查看文件状态 - 红色表示新建文件或者新修改的文件,都在工作区 - 绿色表示文件在暂存区 - 新建login.py文件在工作区, 需要添加到暂存区并提交到仓库区 git status # 将工作区文件添加到暂存区 # 添加项目中所有文件 git add. 或者 # 添加指定文件 git add login.py # 将暂存区文件提交到仓库区 - commit会生成一条版本记录 - -m后面是版本描述 git commit -m '版本描述' # 接下来就可以在login.py文件中编辑代码 - 代码编辑完成后即可进行 add 和 commit 操作 - 提示:添加和提交合并命令 git commit -am '版本描述' # 查看历史版本 git log 或者 git reflog # 回退版本 * 方案一 - HEAD表示当前最新版本 - HEAD^表示当前最新版本的前一个版本 - HEAD^^表示当前最新版本的前两个版本, 以此类推... - HEAD~1表示当前最新版本的前一个版本 - HEAD~10表示当前最新版本的前10个版本,以此类推... git reset --hard HEAD^ * 方案二 - 通过每个版本的版本号回退到指定版本 git reser --hard 版本号 # 撤销修改 - 只能撤销工作区、暂存区的代码,不能撤销仓库区代码 - 撤销仓库区的代码就相当于回退版本操作 ~撤销工作区代码: git checkout 文件名 ~撤销暂存区代码: # 第一步:暂存区代码撤销到工作区 git reset HEAD 文件名 # 第二步:撤销工作区代码 git checkout 文件名 # 对比版本 - 对比版本库与工作区 git diff HEAD -- login.py - 对比版本库 git diff HEAD HEAD^ -- login.py # 删除文件:分为确定删除和误删 - 确定删除 # 删除文件 rm 文件名 # git确定删除文件, 对比添加文件git add git rm 文件名 # 删除后记录删除操作版本 git commit -m '删除描述' - 误删处理:撤销修改即可 # 删除文件 rm 文件名 # git 撤销修改 git checkout -- 文件名

Git 远程仓库

# 配置SSH公钥入口 账户下的settings属性 # 修改Github注册邮箱和用户名 vi .gitconfig [user] email = zhangjiesharp@163.com name = zhangxiaochuZXC # 生成公钥 ssh-keygen -t rsa -C "zhangjiesharp@163.com" # 删除旧公钥 rm -r .ssh # 配置公钥 # 经理的工作 cd Desktop/manager/ git clone git@github.com:zhangxiaochuZXC/test007.git # 密钥错误 eval "$(ssh-agent -s)" ssh-add # 推送项目到远程仓库 ## 工作区添加到暂存区 git add . # 暂存区提交到仓库区 git commit -m '立项' # 推送到远程仓库 git push # 张三的工作 # 克隆项目到本地 cd Desktop/zhangsan/ git clone git@github.com:zhangxiaochuZXC/test007.git # 配置张三身份信息 cd Desktop/zhangsan/test007/ git config user.name '张三' git config user.email 'zhangsan@163.com'
代码冲突
提示:多人协同开发时,避免不了会出现代码冲突的情况原因:多人同时修改了同一个文件危害:会影响正常的开发进度注意:一旦出现代码冲突,必须先解决再做后续开发 # 容易冲突的操作方式 多个人同时操作了同一个文件 一个人一直写不提交 修改之前不更新最新代码 提交之前不更新最新代码 擅自修改同事代码 减少冲突的操作方式 # 养成良好的操作习惯,先pull在修改,修改完立即commit和push 一定要确保自己正在修改的文件是最新版本的 各自开发各自的模块 如果要修改公共文件,一定要先确认有没有人正在修改 下班前一定要提交代码,上班第一件事拉取最新代码 一定不要擅自修改同事的代码
标签
当某一个大版本完成之后,需要打一个标签作用:记录大版本备份大版本代码 # 打标签流程 ## 经理进入本地仓库test007 cd Desktop/manager/test007/ ## 经理在本地打标签 git tag -a 标签名 -m '标签描述' 例: git tag -a v1.0 -m 'version 1.0' # 经理推送标签到远程仓库 git push origin 标签名 例: git push origin v1.0 # 删除本地和远程标签 ## 删除本地标签 git tag -d 标签名 ## 删除远程仓库标签 git push origin --delete tag 标签名
分支
# 作用 研究新的功能或者攻关难题 解决线上bug # 特点 分支使每个员工开发期的代码互不干扰 项目开发中公用分支包括master、dev 分支master是默认分支,用于发布,当需要发布时将dev分支合并到master分支 分支dev是用于开发的分支,开发完阶段性的代码后,需要合并到master分支 项目中每个项目成员都可以单独建立分支用于的代码开发,实现不交叉 # 模拟经理分支操作 ## 进入经理本地仓库 cd Desktop/manager/test007/ ## 查看当前分支 git branch ## 创建并切换到dev分支 git checkout -b dev ## 管理dev分支源代码:add、commit、push(git push --set-upstream origin dev## dev分支合并到master分支 ### 先切换到master分支 git checkout master ### dev分支合并到master分支 git merge dev ### 合并分支操作到远程仓库 git push ## 张三同步代码成功,分支合并才算成功 cd Desktop/zhangsan/test007/ git pull # BUG 分支 有时当我们正在开发新功能时,出现了线上BUG。此时,必须暂停正在开发的功能,新建临时分支先解决线上BUG ## 张三切换到dev分支 git checkout dev ## 线上v1.0版本突然发现bug ### 暂停该工作,记录未提交的修改:保留现场 git stash ## 解决线上v1.0版本bug ### 切换到经理账户 ### 新建fixbug分支,并下载v1.0版本的代码到fixbug分支 git checkout -b fixbuh v1.0 ### 修复线上v1.0版本bug ### 管理fixbug分支代码 add commit push(git push --set-upstream origin fixbug) ### 合并fixbug分支到master分支,并推送到远程仓库 ##### 切换到master分支 git checkout master ##### 合并fixbug分支到master分支 git merge fixbug ##### 推送合并到远程仓库 git push ## 经理打标签v1.1,发布v1.1版本 git tag -a v1.1 -m 'version 1.1' git push origin v1.1 ## 张三回复dev分支未提交的修改 git checkout dev git stash lish git stash pop ## 张三将fixbug分支合并到dev分支 git merge fixbug git push ## 张三将dev分支合并到master分支,并推送
转载请注明原文地址: https://www.6miu.com/read-2626293.html

最新回复(0)