分布式版本控制系统git的简单使用

版本控制:就是文件的备份和恢复
版本控制系统发展:本地版本控制系统-->集中式版本控制系统(SVN/CVS)-->分布式版本控制系统(Git)
Git版本控制系统的优点:
1、直接记录快照,不是差异化比较
2、所有操作都是本地操作
3、保证数据的完整性
4、多数操作仅添加
仓库和分支:
仓库:就是存放文件的磁盘空间,分为本地仓库和远程仓库
分支:分支就是对版本的一次回溯

操作:
1、安装Git
2、注册GitHub账号
3、创建一个Repository,并邀请其他账号协同开发

Git全局设置用户名和邮箱:用户名和邮箱不是远程仓库的账号或邮箱(GitHub),目的是记录谁(username)操作了文件,可以有个联系方式(email),在企业中可能二者相同
git config --global user.name 'your name'
git config --gloabl user.email 'abc@145.com'
git config --list 查询配置

初始化仓库:
git init 仓库名字:如果名字没有,那么默认在当前文件夹中创建git仓库。查看文件夹是否是一个仓库,进入文件夹,显示.git的隐藏文件夹
git clone https://github.com/Tonygogo/python001.git 从远处复制一个仓库下来

仓库的几个区域:工作区(Working Tree)/ 暂存区(Stage) /HEAD(仓库,记录的是最近的一次提交)
工作区文件执行 git add files.... --> 暂存区 --> 执行git commit -m '提交信息' ->HEAD
文件状态:
未托管状态:untracked状态
托管状态:已提交(committed)、已修改(modified)、已暂存(staged)
通过git status进行查看即可

git log 查看操作日志
git rm abc.txt.. 删除文件
如果删除文件后先不做commit,直接执行git reset HEAD abc.txt 在执行git checkout -- abc.txt就可以恢复
如果删除后提交到了本地仓库也就说已经从仓库中把文件删除,这时直接通过以上命令是找不回的。
git log 查看最近有这个文件的提交编码
git reset 编号
git checkout -- 文件

远程仓库操作:
1、如果没有绑定远程需要绑定远程仓库:git remote add origin '远程仓库的url' 其中origin是一个别名
2、把本地仓库推送到远程:git push origin master
3、同步远程仓库的文件:git pull origin master
如果是第一次:需要绑定pull的地址:git branch --set-upstream-to=origin/master master
在执行git pull就可以拉去远程仓库的文件

分支操作:
创建分支并进行切换:git checkout -b new_branch
切换分支:git checkout 分支名,如果分支不存在就会提示错误
删除分支:git branch -d 分支名称,不能自删
查看所有分支:git branch
分支的合并:git merge 分支名, 把分支名的文件合并到当前分支

 

冲突解决:
出现:就是当某个文件的同一位置被人修改后,提交文件就会提示有冲突
制造冲突:
情况一:
1、A账号在abc的第一行修改了一段代码,然后提交远程仓库
2、B账号也在abc的第一行进行修改,然后提交远程仓库这时会有提示不能提交,应该先git pull 解决冲突
情况二:
分支的合并,就在a分支上修改了abc文件,然后提交到仓库,同时在b分支上在同一位置修改了代码在提交到仓库,
然后b分支合并a分支时就会出现冲突
解决方法:可以先通过git diff 文件名 查看文件冲突,然后进行修改把>>>>>> HEAD
本地内容
========
某个版本的内容
<<<<<<<版本号

把>=<删除后进行提交即可


Git分支开发的流程:
master: 主干分支
develop:开发分支
hotfix:bug的紧急修复分支
release:上线分支(可能没有)
test:测试分支
feature:新功能分支

master -> 切换develope分支(v20180604) -->test(测试分支)-merge dev --> release分支-merge dev—>hotfix(hotfix20180604)-切新分支->test-merge hotfix->release分支merge hotfix分支-->master: merge release分支


master切换一个分支叫develope分支,test分支merge开发分支,master分支merge开发分支进行打包上线,master切出hotfix分支进行bug修复,test分支merge hotfix分支,
master merge hotfix


忽略文件:将环境相关的不需要提交到远程仓库的一些文件加入到忽略文件
在仓库中添加一个.gitignore文件,然后把需要添加到仓库的忽略文件的路径存放到次文件中
.idea/
__pycache__/
abc.txt

如果本地仓库中含有忽略文件,那么把它添加到gitignore文件中是不起作用,那么要执行git rm --cache 文件名 从本地仓库缓存中删除,在提交这时忽略文件就会起作用

Pycharm中添加ignore插件:settings->plugins->搜索ignore

posted @ 2019-03-07 11:44  一念之间的抉择  阅读(195)  评论(0编辑  收藏  举报