git构建分布式版本控制系统
GitHub注册
官网: https://github.com/
- 流程
注册账号
新建项目
克隆项目
1、github.com 注册账户
2、在github上创建仓库
在用户houdoumen-58中创建一个名为sgqt10的仓库
3.生成本地 ssh key
本地生成公钥
ssh-keygen -t rsa -C 'git@github.com:sgqt10' //输入命令后,连续回车,则可生成密钥
-t rsa 表示加密类型是rsa加密
-C 注释
复制公钥,在github中添加ssh key
cat .ssh/id_rsa.pub //查看密钥
复制公钥,在GitHub中添加ssh key
点击 add ssh key
出现登陆验证,输入用户登录密码即可
4.测试本地客户端
安装git
yum install git
5.认证(但不能远程连接)
ssh -T git@github.com
6.本地添加远程仓库名
git config --global user.name 'houdoumen-58'
7.在本地添加远程仓库邮箱
git config --global user.emai'2214456982@qq.com'
- 8.启动默认颜色配置(可跳过)
git config --global color.ui true
9.查看配置
git config --list
ls .gitconfig
cat .gitconfig
10.上传远程仓库
mkidr sgqt10
cd sgqt10
git init //初始化空的git
11.设置远程仓库地址
ssh:git@github.com:houdoumen-58/sgqt10.git
git remote add origin git@github.com:houdoumen-58/sgqt10.git //添加远程仓库,将名为 origin 的远程仓库与你的本地仓库关联起来。
echo gegege >a.sh
echo haha >b.sh
echo lueluelue >c.sh
echo 111111 >1.sh
git add . //add与.间有空格
git commit -m'备注,第一次上传a.sh'
git push -u origin master
12.克隆远程仓库信息
git clone git@github.com:houdoumen-58/sgqt10.git
cd sgqt10/
ls
git 纯命令行的的软件
1.准备
useradd git
mkdir /git-root/
cd /git-root/
2.创建分支
git init -vare shell.git //初始化空的git版本库于 /git-root/shell.git
ls
3.目录授权
chown -R git:git shell.git/
4.切换git用户
su - git
5.生成密钥
ssh-keygen -t rsa
cd .ssh/
cp id_rsa.pub authorized_keys
logout
6.设置git账号的shell
usermod -s /usr/bin/git-shell git
7.测试下载仓库
cd /opt/
git clone git@10.18.47.23:/git-root/shell.git
正克隆到 'shell'...
git@10.18.47.23's password:
warning: 您似乎克隆了一个空版本库。
ls
gitlab shell
8.测试上传仓库
cd shell
touch 123
git add.
git commit -m ''
报错解决方案
如若出现以下报错,说明本地仓库与远程仓库内容没有保持一致。远程仓库的 master 分支上已经有了新的提交,这些提交在你的本地仓库中不存在。Git 阻止你直接推送,以防止覆盖远程仓库的历史记录。
你需要先拉取(fetch)远程仓库的最新更改,并将它们合并到你的本地仓库中。
切换到你的项目目录,然后执行以下命令来拉取远程仓库的更改:
git fetch origin
//这里 origin 是远程仓库的默认名称,它指向你克隆仓库时Git自动设置的远程URL。
合并操作
git checkout master //如若你不在master分支,切换到该分支
git merge origin/master //执行合并操作
如果在合并过程中遇到冲突,Git 会提示你解决这些冲突。你需要手动编辑冲突的文件,解决冲突后,使用 git add <文件名> 来标记冲突已解决,然后使用 git commit 来完成合并提交。
图中可以看出,起初本地只有abc.sh 一个文件,远程与本地更改同步后,本地有 1.sh abc.sh a.sh b.sh c.sh 5个文件,本地同步成功。
推送更改到远程仓库
git push origin master //推送更改到远程仓库
远程同步成功!