git服务器搭建
1、安装git,yum install git
2、创建证书登录
创建文件 /home/git/.ssh/authorized_keys
权限 chmod 755 /home/git/.ssh chmod 644 /home/git/.ssh/authorized_keys
这里的权限很重要,否者可能会无法使用密钥登录
在服务器 和 本机都创建pub_key
ssh-keygen -t rsa -C "[email protected]",如果存在就不重复创建。mac本机在这里 ~/.ssh/id_rsa.pub
并且把id_rsa.pub粘贴复制到/home/git/.ssh/authorized_keys,一个key一行
3、初始化Git仓库,首先我们选定一个目录作为Git仓库,假定是/home/gitrepo/www.jkkouzi.git
mkdir /home/gitrepo
chown git:git gitrepo/
cd gitrepo
git init --bare www.jkkouzi.git --文件夹权限注意,一般755
Initialized empty Git repository in /home/gitrepo/runoob.git/
以上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为git:
chown -R git:git www.jkkouzi.git
4、修改sshd配置
vim /etc/ssh/sshd_config
找到如下配置项,去除前面的注释,如果已经开启无需再配置
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile
5、重启sshd服务
linux重启ssh服务:service ssh restart是centos 6的命令。你这是centos 7。应该是systemctl restart sshd
6、服务端使用仓库
创建目录/data,
git init
git clone [email protected]:/home/gitrepo/www.jkkouzi.com.git
把代码放进去,git add . git commit -m '' git push origin master
7、客户端使用仓库
创建目录/data,
git init
git clone [email protected]:/home/gitrepo/www.jkkouzi.com.git
把代码放进去,git add . git commit -m '' git push origin master
如果现在有新的项目要创建仓库,换个仓库名字,重复3、6、7
git创建分支提交服务器:
客户机:
git checkout -b dev_[verNo] 创建分支
git push origin dev_[verNo] 提交分支
服务器:
方法一:
git pull 拉取分支
git checkout -b dev_[verNo] origin/dev_[verNo] 创建远程origin的dev_[verNo]分支到本地
如:git checkout -b dev_2.0.2 origin/dev_2.0.2
方法二:
git pull -p
git checkout dev_[verNo] 追踪关系已经建立
本地分支与远程分支的追踪关系:git branch -vv
建立联系:git branch --set-upstream-to=origin/dev_2.0.2 dev_2.0.2
清理远程已删除本地还存在的分支:git pull -p
git修复bug合并分支:
1、在master基础上创建临时分支hotfix改bug,完了提交
2、git checkout master
3、git merge hotfix --合并
Fast-forward、Auto-merging README是好消息
Fast-forward:Fast-forward:快速向前进。自从上一次提交之后就没改变。Git将执行fast-forward合并方式。分支历史是线性的
如果发生冲突:git status,然后手动解决
git add 将把它们标记为已解决状态
git commit 来完成这次,然后不需要其他操作了
4、git branch -d hotfix --删除
拉取同一分支代码不一致:
两服务器:1、git reset --hard 2、git pull origin bug_ZIZHU-45
问题:Untracked working tree file 'pub/css/downloaddj.css' would be overwritten by merge. Aborting
git clean -d -fx ""
其中
x -----删除忽略文件已经对git来说不识别的文件
d -----删除未被添加到git的路径中的文件
f -----强制运行