git目录
git是的优点与工作原理
git定义
Git是一个免费的开源 分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。
git和svn的区别
SVN是集中式版本控制系统,需要联网。
git是分步式版本控制系统,即使没有网也可以在本地进行版本控制开发。
Git 的工作流程:
git与tortoiesgit的安装
git的安装
git下载地址
安装的诀窍就是闭着眼下一步。
tortoiesgit的安装
tortoiesgit下载地址
一直下一步
配置开发者的用户名和邮箱
安装完成后。
git的应用
配置用户信息
git config --global user.name "youlindongxiao" #设置用户名
git config --global user.email "youlindongxiao@163.com" #设置邮箱
创建版本库
#选择一个空目录
git init
概念:
版本库:“.git”目录就是版本库,将来文件都需要保存到版本库中。
工作目录:包含“.git”目录的目录,也就是.git目录的上一级目录就是工作目录。只有工作目录中的文件才能保存到版本库中。
提交文件到git版本库
- 在工作空间创建文件
touch test.txt
- 添加文件到暂存区
git add test.txt
- 添加暂存区文件到本地版本库
git commit -m '提交test'
版本比较和查看日志
git diff HEAD HEAD^
git log
删除文件
- 物理删除和恢复
rm test2.txt
git checkout -- test2.txt
- git rm和恢复
git rm test2.txt #删除暂存区文件
git reset --hard HEAD^ #head 指针前移
共享版本库安装与使用
- 安装git服务环境准备
yum -y install curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel gcc cc
- 源码安装git
tar -zxvf git-2.5.0.tar.gz -C /usr/local #解压
cd /usr/local/git-2.5.0/ #进入目录
autoconf#自动加载配置
./configure #执行配置
make && make install #安装并编译报错,缺少perl依赖
yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker # 添加perl依赖
- 添加git用户并并切换目录
adduser -r -c 'git version control' -d /home/git -m git
passwd git
su - git
- 配置密钥登录
服务器端生成公私钥
ssh-keygen -t rsa
客户端生成公私钥并上传服务器
ssh-keygen -t rsa #在客户端生成公私钥
ssh-copy-id git@192.168.1.159 #将公钥拷贝给服务器
- 创建git仓库
git --bare init /home/git/project/test
注意:如果不使用“–bare”参数,初始化仓库后,提交master分支时报错。这是由于git默认拒绝了push操作,需要.git/config添加如下代码:
[receive]
denyCurrentBranch = ignore
推荐使用:git --bare init初始化仓库。hito
- 同步服务代码到远端(客户端操作)
#在服务器创建项目 git --bare init /home/git/project/test
#创建本地与远端的联系
git remote add origin git@192.168.1.159:project/test
#推送代码到远端
git push -u origin master
如果已经存在关联,删除已经存在的关联,重复上述操作。
git remote rm origin
- 从远端服务器克隆代码
git clone git@192.168.1.159:project/test
- 从远端服务器获取代码
git fetch
git pull # git fetch 再进行git merge
- 冲突与解决
两方对于同一个文件同一个版本的同一个位置做出修改的时候,提供时后提交的一方
error: failed to push some refs to ‘git@192.168.1.159:test’
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push --help’ for details.
git pull # 先将最新的远端pull下来,
Auto-merging a2.txt
CONFLICT (content): Merge conflict in a2.txt
Automatic merge failed; fix conflicts and then commit the result.
git pull #手工处理
git add a2.txt
git commit -m '修改失败问价' #重新提交
git push -u origin master #提交到远端服务器
idea 配置git服务器
- 选择File→Settings打开设置窗口,找到Version Control下的git选项
- 创建git仓库,
- 配置忽略文件
- 添加到缓存区
- 提交到本地仓库
- 服务器初始化仓库并配置远端仓库
git --bare init /home/git/pdf_sign
7.上传代码
- 一定要配置.ignore插件