1.git的概述
最先进的分布式版本控制系统
git网站:
GitHub: Let’s build from here · GitHub 全球最大的开源项目网站。
Gitee - 企业级 DevOps 研发效能平台 中国最大的开源项目网站。
2.集中式和分布式的区别
集中式版本控制系统的版本库是存放在中央服务器的,程序员每次干活都要先从中央服务器下载最新版本的代码,干完活又把代码推送到中央服务器。
弊端:
1.如果是局域网传输还好,如果是外网就需要很快的网速才行。
2.因为版本库在中央服务器,一旦服务器挂了,所有人就都干不了活。
分布式版本控制系统中,版本库在每一个程序员的电脑中,程序员可以在自己的电脑中直接推送和从本库下载代码,操作灵活方便,也不依赖外网。
下载官方网址:Git - Downloads(傻瓜式安装)
3.git简单操作
设置全局身份 在桌面右键选择Git Bash Here,打开黑窗口
姓名:git config --global user.name "Your Name"
邮箱:git config --global user.email "email@example.com"
创建版本库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
步骤:
1.在电脑的某一个盘符根路径新建一个空的文件夹,例如:E:\git
2.在黑窗口中使用cd命令进入到E:git文件夹
3.使用创建文件夹命令在git文件夹中创建一个repository文件夹。
4.使用cd命令进入到repository版本库中,然后使用git init命令初始化版本库
使用了git init 命令之后在repository文件夹中会有一个隐藏的.git文件夹,点击文件查看显示影藏文件。或者使用命令:ls -ah 查看。
添加操作
使用git add命令,将readme.txt添加到版本库暂存区
提交命令:git commit -m "提交描述"
为什么提交需要分为git add 和git commit 两步?
因为可以将多个文件多次使用git add命令添加到版本库暂存区,最后再使用一次git commit命令将暂存区所有文件一次性提交到版本库分支。
例如:E:\git\repository中有两个文件a.txt和b.txt可以分别add两次添加到版本库暂存区,然后一次性提交到版本库分支。
总结:添加文件到Git仓库,分两步:
1.使用命令git add <file>,注意,可反复多次使用,添加多个文件;
--可以是多个文件 或文件夹
2.使用命令git commit -m <message>,完成。
--把add后的文件全部提交到版本库的分支
要随时掌握工作区的状态,使用git status命令。
如果git status告诉你有文件被修改过,用git diff可以查看修改内容
版本库:
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
版本库包括暂存区和分支。
总结:
创建文件 在工作区内,版本库外
添加文件 到版本库暂存区
提交文件 到版本库分支
版本回退
相关命令:
git log 查看当前分支的版本提交记录 常用
git log --pretty=oneline 一个行显示
git reset --hard HEAD^ 回退到上一个版本 常用
git reset --hard cb5f63 回退到指定的版本号
撤销命令
情况1:数据只存在工作区
git checkout -- readme.txt 丢弃工作区修改
情况2:数据使用add 添加到暂存区后
思路:先将文件从暂存区移除,在使用情况1的方式撤销修改。
git reset HEAD readme.txt 将文件从暂存区移除,回到工作区
git checkout -- readme.txt 丢弃工作区修改
情况3:数据使用add 添加到暂存区并commit到版本库分支
git reset --hard HEAD^ 回退到上一个版本
git reset --hard cb5f63 回退到指定的版本号
注意事项:1.文件在撤销之前必须至少进行一次提交
2.文件一旦被修改,文件就回到工作区。
删除文件
先删除
git rm -rf 文件名
再提交
Git commit -m 备注
注意:使用git删除文件是不经过回收站
创建与合并分支
相关命令:
git checkout -b dev 创建dev分支并切换到dev分支
git branch dev 创建一个叫dev的分支,不切换
git checkout dev 切换到一个叫dev的分支
git branch 查看所有分支
git branch -d issue001 删除issue001分支 -- 不能删除当前正在使用的分支
git merge dev 合并分支
如把dev合并到master那么要在master分支上执行合并的命令
合并的冲突问题 :当已经提交过一次文件,修改之后有需要提交,文件名相同,内容不同会出现冲突问题
-
先合并,再手动解决冲突,再添加 再提交