资讯专栏INFORMATION COLUMN

Git 安装和使用经验总结

zzbo / 732人阅读

摘要:在装有客户端的电脑使用执行得到如下界面输入回车,提示输入密码,无视继续回车走起结束后会在电脑用户名中生成一个文件这个文件会保存所有连接过的信息,下一次连接这个就不会有上面的提示了。六常识及注意事项提交时会自动忽略空文件夹

GIt安装和使用经验总结

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

进入正题

一.Git 公司服务器的搭建

注意注意,下面的方法是常规的git服务器搭建过程,其实完全可以使用gitlab之类的开源软件搭建git服务器,下面这种方式其实比较鸡肋,gitlab就相当于自己搭建github,值得一试~

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

1.Git服务器端安装

我的服务器是Centos7 所以使用yum命令安装

yum install -y git

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

git --version

显示版本即视为安装成功

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

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

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

注:这个用户是用来做版本库所有者的区分的,不是作为上传代码的用户的,只需要一个就可以了。
执行命令
添加名为git的用户

useradd git

为用户git 设置密码

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

得到如下界面

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


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


此时我们就可以将远程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/ 中生成了两个文件

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


点击finish完成本地版本库的创建

右击项目

继续

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


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

2.冲突解决

网上解决冲突的方法都差不多。下面是我的使用的心得:

个人经验:大部分情况下,如果你需要提交的不多,最快的解决冲突办法就是重新下载一个新的版本或者使用如下方法

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

六.Git常识及注意事项 1.git提交时会自动忽略空文件夹

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69065.html

相关文章

  • nwjs(nodejs)写桌面应用(少儿英语学习项目经验总结

    摘要:项目背景最近上三年级儿子的英语老是记不住单词,而他们又在上科学课,老师让练打字。打字和英语学习都没太适合小家伙的实际情况,因此就花了一个周末写下了这个项目。题库为文件,存在指定目录中。运行方法全局安装克隆源代码安装依赖库运行项目 项目背景 最近上三年级儿子的英语老是记不住单词,而他们又在上科学课,老师让练打字。打字和英语学习都没太适合小家伙的实际情况,因此就花了一个周末写下了这个项目。...

    lovXin 评论0 收藏0
  • 用GatsbyStrapi创建一个静态博客(翻译自己探索过程中的经验总结)

    摘要:用和创建一个静态博客翻译和自己探索过程中的经验总结原文参阅或本篇主要是对其精华内容进行翻译以及实操过程中遇到的问题解决和探索一些具体的操作步骤和细节我将忽略结合原文一起阅读效果更佳注本文操作环境是介绍这是一个包含很多静态内容页面的站点从技术 用Gatsby和Strapi创建一个静态博客(翻译和自己探索过程中的经验总结) 原文参阅: Building a static blog usin...

    lijy91 评论0 收藏0
  • DevOps 基于Walle的小型持续集成实战(七)总结

    摘要:当前版本针对于安装版概要整体流程贯通,基本可以达到实用级别。仍旧有很多需要提高的地方发布构建时部署上线服务器卡顿严重,基本不可以多项目发布。 该文章旨在描述从零开始搭建环境,中间遇到的问题以及最终的经验总结。当前版本针对于2.0 docker安装版 概要 整体流程贯通,基本可以达到实用级别。满足2-5台服务器,少量的应用部署是完全可以的,但达到一定规模之后则Walle和Jenkins...

    iliyaku 评论0 收藏0

发表评论

0条评论

zzbo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<