Linus的第二个伟大作品。2005年由于BitKeeper软件公司对Linux社区停止了免费使用权。Linus迫不得己自己开发了一个分布式版本控制工具
,从而Git诞生了。
目前使用Git作为版本控制的开源软件:Linux kernel,Android, jQuery, Ruby on Rails,Debian… ,github,码云
1、SVN工作原理【了解】
2、Git工作原理
常见命令整理:
git clone :从仓库克隆项目到本地电脑
git add : 添加代码到git管理
git commit : 提交代码到本地仓库
git push : 推送代码到远程仓库
git pull :把远程仓库中的代码下载到本地仓库
3、Git与SVN的区别 :
版本库本地化,支持离线提交,相对独立不影响协同开发。每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。
更少的“仓库污染”。git对于每个工程只会产生一个.git目录,这个工程所有的版本控制信息都在这个目录中,不会像老版本SVN那样在每个目录下都产生.svn目录。
把内容按元数据方式存储,完整克隆版本库。所有版本信息位于.git目录中,它是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签、分支、版本记录等。
支持快速切换分支方便合并,合并代码更加简单。在同一目录下即可切换不同的分支,方便合并,且合并文件速度比SVN快。
分布式版本库,无单点故障,内容完整性好。
国外开源项目基本使用git
Git安装程序:https://git-scm.com/downloads
可视化程序:https://tortoisegit.org/download/
汉化包:https://download.csdn.net/download/zhaobingpo/11982523?utm_source=bbsseo
Git安装包:Git-2.9.3.2-64-bit.exe
Git可视化工具:TortoiseGit-2.2.0.0-64bit.msi
Git汉化包:TortoiseGit-LanguagePack-2.2.0.0-64bit-zh_CN.msi
双击安装即可,安装好之后,右键菜单会出现Git相关项目:
双击安装即可,安装好之后 在 TortoiseGit -> Settings 中选择语言:
创建仓库:git init --bare shared.git
clone克隆仓库:git clone /f/software/repository/git/shared.git/ . (注意有个点,表明当前目录)
配置用户名和邮箱:、
git config --global user.name “用户名任意写”
git config --global user.email “邮箱任意写”
查看用户名和邮箱:
git config user.name
git config user.email
add添加操作:git add xxx.txt
commit提交:git commit -m "这里是提交日志"
push推送:git push origin master 推送commit过的文件到远程仓库
忽略文件:echo "*.txt" > .gitignore
把 *.txt 添加到.gitignore 文件中,所有以txt结尾的文件都被忽略
pull更新:git pull 更新本地库代码和远程库一致
1、创建一个空文件夹作为Git中央仓库,如 repository , 右键创建版本库
2、制作纯净的版本库:
3、效果:
1、另外再新建一个目录如:“zs” 代表一个程序员zs,然后克隆仓库
2、填写仓库目录地址,以及克隆到zs目录的路径
3、点击确定,克隆成功后会出现一个 “.git” 的隐藏文件,其中包含了Git的本地仓库,你可以不用管
新建文件,执行add添加版本库管理
填写好提交日志,勾选好要提交的内容,选择提交
[注意]该操作不能选中文件,直接在目录中右键即可
默认master,直接确定即可 , 看到成功的提示,代表文件已经提交到了repository仓库中
刚才我们是一步一步执行 add , commit , push 来提交文件的,这次我们一步到位,还是新建立一个文件,然后直接右键执行git提交->master
:【注意】不需要选中文件,直接目录中右键
这次直接点击提交和推送
直接删除文件即可
执行 git提交->master ,选中被删除的文件记录,填写日志,提交和推送
右键 -> TortoiseGit -> 显示日志
可以通过搜索框进行日志搜索 ,作者搜索,时间范围搜索,也可以选中某次版本进行差异比较,版本还原等
右键 -> TortoiseGit -> 版本库浏览器
可以查看版本库最新的代码情况,也可以查看日志和还原版本
通过日志或者版本库还原版本 , 可以通过还原变更 , 和还原到版本2种方式
还原的是本地工作空间,还需要提交到远程库
文件冲突是多个人同时修改了同一个文件造成的,比如:zs 修改了 “第一个文件.txt” 文件
然后提交到远程库
这个时候, ls修改了 “第一个文件.txt” 文件 ,内容如下:
然后 ls 也做提交 ,就会出现下面的错误:
这个是因为同一个文件, zs修改了并提交到远程, 那ls提交的时候,git发现ls的内容和远程内容不一致,就让ls先pull拉取,拉取之后就会出现冲突,如下:
编辑冲突,打开冲突文件
假如下面是最终解决之后的效果:
将内容修改成想要的效果[注意要和别人商量一下,不要把别人的代码删掉了] , 然后点击“解决冲突”:
解决完之后,再提交到远程库即可
忽略就是把某些文件不交给git管理, 比如说我要把 iml结尾的文件不交给git管理,做如下操作:
这里选择递归
然后会多出一个忽略文件 , 你也可以手动往这个文件中加入忽略的内容
最后还需要把这个忽略文件提交到远程库
提交的时候你发现 被忽略的文件不会再出现到提交列表
------------------------IDEA待续----------------------------------------