Git 安装和使用经验总结

GIt安装和使用经验总结

此文是本菜鸡在实践屡次git搭建内网服务版本库和GitHub上的使用总结
部分参考了这位大佬的博客https://www.cnblogs.com/dee09...
另外推荐廖雪峰大佬的git博客html

进入正题git

一.Git 公司服务器的搭建

注意注意,下面的方法是常规的git服务器搭建过程,其实彻底可使用gitlab之类的开源软件搭建git服务器,下面这种方式其实比较鸡肋,gitlab就至关于本身搭建github,值得一试~github

前提是服务器配置稍好,gitlab运行占用大约4G内存centos

1.Git服务器端安装

个人服务器是Centos7 因此使用yum命令安装bash

yum install -y git

上面必须保证服务器可联网
安装完成后使用命令查看git版本服务器

git --version

显示版本即视为安装成功eclipse

2.下载客户端安装Git For Windows

地址https://git-scm.com/download/win
一直默认安装就能够,右击鼠标能够出现git bush选项即视为安装成功ssh

3.在服务器端建立一个git的用户

注:这个用户是用来作版本库全部者的区分的,不是做为上传代码的用户的,只须要一个就能够了。
执行命令
添加名为git的用户maven

useradd git

为用户git 设置密码gitlab

passwd git

4.服务器端建立git仓库

能够设置任意位置为git仓库,咱们把git仓库放在/home/data/git/下
git仓库通常以*.git这样格式的文件夹来表示,随意命名

首先建立git仓库所需文件夹

mkdir -p /home/data/git/testgit.git

初始化git仓库

git init --bare /home/data/git/testgit.git

系统会提示初始化一个空的版本库
将testgit.git文件夹的用户权限给予git用户便可

cd /home/data/git
chown -R git:git /home/data/git/testgit.git/

至此,咱们已经完成一个服务器端的git仓库搭建。

二. 链接远程git仓库

完成仓库搭建后便可链接远程仓库
链接须要服务器主机ip,个人是192.168.25.108,下面将服务器远程仓库克隆到本地。

1.在装有客户端的winsows电脑使用git bash执行

git clone git@192.168.25.108:/home/data/git/testgit.git

获得以下界面
clipboard.png

输入yes 回车,提示输入密码,无视继续回车走起

clipboard.png
结束后会在电脑 C:/Users/用户名/.ssh/ 中生成一个文件known_hosts 这个文件会保存全部链接过的ip信息,下一次链接这个IP就不会有上面的提示了。
使用文本编辑文件能够看到咱们的ip信息

clipboard.png
此时咱们就能够将远程git仓库的代码克隆到本地了。
再次执行

git clone git@192.168.25.108:/home/data/git/testgit.git

输入上面设置的git用户的密码便可将远程代码克隆到本地
通常状况下咱们为了提交代码快捷简便都会采用SSH免密登陆的方式来访问远程仓库,这样就不会频繁的输入密码

2.SSH免密登陆及端口问题解决

客户端建立SSH公钥私钥,在git bash中执行(下面的邮箱地址随意填写一个本身的邮箱就能够)

ssh-keygen -t rsa -C "example@email.com"

此时在C:/Users/用户名/.ssh/ 中生成了两个文件

clipboard.png

pub结尾的文件为公钥,另外一个文件为私钥,当咱们吧本身的公钥信息放在对应服务器上就能够免密码访问服务器,实现免密码克隆版本库

3.服务器端打开Rsa认证

vi /etc/ssh/sshd_config

将如下三项的注释去掉

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

保存并重启sshd服务:

centos6命令

/etc/rc.d/init.d/sshd restart

centos7命令

systemctl restart sshd.service

由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,其实是 $Home/.ssh/authorized_keys,因为管理 Git 服务的用户是 git,因此实际存放公钥的路径是 /home/git/.ssh/authorized_keys

在/home/git/下建立目录/.ssh

mkdir -p /home/git/.ssh

修改.ssh文件夹的用户

chown -R git:git /home/git/.ssh

4.将客户端公钥导入服务器端

在客户端git bash中执行命令

ssh git@192.168.25.108 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

导入成功后回到服务器端查看是否已经将对应的公钥内容导入

vi /home/git/.ssh/authorized_keys

公钥是以邮箱地址结尾(上面添加的我的邮箱)

修改.ssh/的目录权限为700
修改authorized_keys的权限为600

chmod 700 /home/git/.ssh/
chmod 600 /home/git/.ssh/authorized_keys

再次在客户端尝试克隆

git clone git@192.168.25.108:/home/data/git/testgit.git

5.ssh端口不是默认端口的解决方法

有些公司内网服务器不能使用通用22端口,这样每次访问git还得额外多加端口信息。

解决方法: (以192.168.25.108 ssh端口为8822为例)
在C:/Users/用户名/.ssh/ 下新建一个config文件
文件内容

Host 192.168.25.108
Port 8822

这样命令不变也能够克隆仓库。
未完待续~

三. Git提交代码和冲突处理以及文件忽略,以eclipse为例

注:使用eclipse初始化本地版本库可能会打乱目录结构,尤为是maven之类的项目带父子工程的,很容易打乱目录结构,看着很不舒服,解决方法见第四节
今天使用eclipse插件提交到版本库,怎么也提交不上去,最后无奈使用命令提交,插件毕竟是插件,出现bug的时候试试命令行,提交方法见第四节

1.新建git项目

在eclipse中的项目右击>>Team>>share Project

clipboard.png

clipboard.png
点击finish完成本地版本库的建立

右击项目

clipboard.png

继续

clipboard.png

提交后本地版本库已经同步,下面把本地代码推送到远程版本库
Team>>remote>>push

clipboard.png

clipboard.png
第一次提交推荐勾选Force Update
完成后会收到已经推送的提示

2.冲突解决

网上解决冲突的方法都差很少。下面是个人使用的心得:

我的经验:大部分状况下,若是你须要提交的很少,最快的解决冲突办法就是从新下载一个新的版本或者使用以下方法

方法:eclipse中选择冲突文件右击>>Team>>advanced>>AssumeUnchanged 这个选项的意思就是标记为未修改,也就是说这个文件在被标记了以后使用Pull命令后远程代码会覆盖本地代码,这个选项尽可能只在单个文件使用。

clipboard.png

六.Git常识及注意事项

1.git提交时会自动忽略空文件夹

相关文章
相关标签/搜索