简单来说就是用于管理多人协同开发项目的技术
多人开发必须要使用版本控制,提高效率
Git
SVN(Subversion)
VSS
TFS
Visual Studio Online
本地版本控制
记录文件每次的更新,对每个版本做一个快照,如RCS
集中式版本控制
所有版本数据保存在集中服务器上,如SVN
为了保证安全,服务器需要定期备份
服务器与开发者多对一,多个人提交代码冲突时候需要解决冲突
分布式版本控制
每个人都有全部的代码,会有安全隐患
每个人的电脑都是一个完整版本库。可在本地离线提交本地版本,联网后进行push
Git是目前世界上最先进的分布式版本控制系统
Linux内核开发项目组在02年~05年启用BitKeeper进行管理和维护代码,由于开发者尝试对BitKeeper进行破解,05年结束赞助。
Linus用两周时间开发了Git系统,是免费开源的,为了辅助Linux内核开发
Git Bash ->接近Linux操作,推荐
Git CMD ->Windows风格
Git GUI ->图形化客户端,不建议
所有配置文件其实都保存在本地
首先配置账号
git config --global user.email "用户名"
git config --global user.email 邮箱地址
本地工作区:
工作目录(Working Directory)
暂存区(Stage/Index)
资源库(Repository/Git Directory)
远程工作区:
git仓库(Remote Directory)
上传:git add . -> git commit -> git push
下载:git pull -> git reset -> git checkout
工作区:平时存放代码的地方,下面有.git隐藏文件
暂存区:一个文件,用于存放改动
仓库区:安全存放数据的位置,有提交到所有版本的数据,HEAD指向最新放入仓库的版本
远程仓库:托管代码的服务器
PS:能直接接触到的只有工作区和远程仓库
两种方法;
本地创建全新仓库
git init
克隆远程仓库
git clone [url]
clone项目注意查看版权信息,有些项目用于商用则要收费
这里需要注意,mac系统下每个文件夹中默认有一个名为".DS_Store“的文件,目的在于存储目录下文件的图标颜色和排版等信息,类似Windows 下的 desktop.ini。为了避免多人开发造成冲突
在硬盘根目录上执行,以删除mac上所有.DS_Stroe
find ~ -name ".DS_Store" -delete
禁止生成
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE
恢复生成
defaults delete com.apple.desktopservices DSDontWriteNetworkStores
忽略文件配置
*****补充,第九集
github有墙,在国内多使用gitee,在公司有时候会搭建自己的gitlab服务,这是三种主流方式
完善个人信息,可以作为个人找工作的门面
设置本机绑定SSH公钥,实现免密登录(该部分单独介绍)
新建一个码云仓库,若公开需要选择开源许可证
把仓库clone到本地文件夹,即绑定成功
cd到.ssh目录
.ssh目录位置:
Win:C:\Users\Administrator.ssh
Mac:~/.ssh
Linux:~/.ssh //没有的话自己mkdir
ssh-keygen -t rsa
生成公钥
-t 后跟参数表示加密算法,执行后在文件夹下会生成两个文件
id_rsa.pub是公钥
id_rsa是私钥
将pub文件中的内容添加到页面的公钥框内,该内容会包括git的用户名邮箱设置
之前已将仓库和本地目录进行了绑定
有两种方法集成IDE
注意此时IDE的变化:
工程内会自动生成".gitignore"文件
文件会出现颜色,文件会变成红色(修改),绿色(已提交)
左下角出现Version Control,可追溯版本变化
右上角出现Git快捷键,可以傻瓜式add和commit
右键已修改的文件,git选栏下有傻瓜操作,add和commit
add,commit和push也都可以在IDE自带terminal下操作,使用右上角快捷傻瓜操作,commit的时候把弹出窗右侧的选中全取消,可以快速提交。
命名:master->主分支,dev->开发分支
多个分支若并行,即同时存在多个版本,就不会有代码冲突
git branch
git branch -r
git branch []
git checkout -b []
或m先branch再checkout
git branch -d []
git branch -dr []
git merge branch []
git rebase branch []
在定制过iTerm2之后,可以直接在本地仓库目录下显示分支,十分方便。
到此基本使用已经足够,关于仓库的分支跳转等,之后会另写一篇进行补充。
原文:https://www.cnblogs.com/tzbubble/p/12886410.html