git服务器
Posted 转角90
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git服务器相关的知识,希望对你有一定的参考价值。
git服务器
安装
yum install git -y
创建git用户
adduser git # 创建用户
passwd git # 密码git
# 切换到git用户下
su - git
创建仓库
cd /home/git
mkdir repos
cd repos
mkdir dev-php.git # 创建仓库目录
cd dev-php.git
git init --bare # 初始化dev-php.git作为仓库, 不加bare会在dev-php.git目录下再创建一个git仓库
git客户端
安装
yum install git -y
拉取远程仓库
cd /usr/local/src
git clone git@192.168.75.128:/home/git/dev-php.git
# 设置用户和邮箱
git config --global user.name \'用户名\'
git config --global user.email \'邮箱\'
# 进行git操作
SSH的无密码登录
在客户端生成秘钥
ssh-keygen -t ed25519 -C \'你的邮箱\' -f \'文件名\'
在服务器端,将客户端中的公钥添加到authorized_keys文件里
su - git
cd ~/.ssh
ls
vi authorized_keys
# 将客户端公钥复制到authorized_keys中
# 修改权限
chmod 600 authorized_keys
cd ../
chmod 700 .ssh
# | 权限 | rwx | 二进制 |
---|---|---|---|
7 | 读 + 写 + 执行 | rwx | 111 |
6 | 读 + 写 | rw- | 110 |
5 | 读 + 执行 | r-x | 101 |
4 | 只读 | r-- | 100 |
3 | 写 + 执行 | -wx | 011 |
2 | 只写 | -w- | 010 |
1 | 只执行 | --x | 001 |
0 | 无 | --- | 000 |
Git建立本地服务器和git命令的使用
建立本地Git 服务器
[[email protected] ~]# useradd git ------------------创建一个git用户
[[email protected] ~]# mkdir /git‐root/
[[email protected] ~]# cd /git‐root/
[[email protected] git‐root]# git init ‐‐bare shell.git --------------初始化仓库
[[email protected] git‐root]# chown ‐R git.git shell.git ----------把文件的属主和属组改成git
[[email protected] git‐root]# su ‐ git --------------切换成git用户
生成密钥
[[email protected] ~]$ ssh‐keygen ‐t rsa ----------------生成密钥
[[email protected] ~]$ cd .ssh/
[[email protected] .ssh]$ cp id_rsa.pub authorized_keys-----------新建授权公钥串
[[email protected] .ssh]$ exit
克隆仓库
[[email protected] ~]# cd /opt/
[[email protected] opt]# git clone [email protected]:/git‐root/shell.git-----------克隆本地仓库
Cloning into ‘shell‘...
新建一个测试文件,进行推送
[[email protected] opt]# cd shell/
[[email protected] shell]# vim test1.sh
[[email protected] shell]# git add test1.sh
[[email protected] shell]# git commit ‐m ‘first commit‘
[[email protected] shell]# git push origin master
git常用的命令
git
git init #------------------初始化仓库
git clone https://github.com/kennethreitz/requests.gitCloning into ‘requests‘... #-----克隆建立远程库
git clone [email protected]:/git-root/liudelong.git #-------克隆建立本地库
git add * #------------提交
git commit -m "describe" #---------------对提交任务进行描述
git push origin master #----------------上传
查看状态
git status #------------------查看git 的状态
git status -s #-------------------查看git 的简要信息
显示信息:
A .gitignore
MM test2.py #------------------第一个M表示staging有修改,第二个M表示working directory有修改
git diff #检查数据是否一致
git diff #-------------默认git diff 只检查第二个标志位(即检查working directory与staging的数据是否一致
git diff HEAD #-------------------指针,检查working directory与history是否一致,HEAD指针就指向最后一次提交的内容
git diff --stat #-----------------输出简要信息
git diff --staged #-----------------表示检查stage与history中的数据是否一致
下载
git reset #----------------下载历史history中的最后一个版本致stage中
git checkout #--------------------把历史区的文件恢复到工作区-下载stage中的数据到working directory
git checkout HEAD #------------------从history中直接下载历史版本到working directory
git commit -am ‘third commit‘ #-----------------直接由working directory提交到history
删除数据:
git rm file #--------------------删除文件
git rm --cached test2.py #---------------仅删除staging中的文件,此命令主要用来修改文件名
stash暂存
git stash #-------------暂存当前正在进行的工作
git stash list #----------------查看之前的暂存区
git stash pop #----------------取出上次的暂存
branch分支
git branch #----------------查看分支 (*表示当前的 branch)
git branch newidea #----------------创建分支
git checkout newidea #---------------切换新的分支
cat .git/HEAD #----------------查看当前HEAD指向newidea分支
ls .git/refs/heads/ #----------查看现有分支的存储情况
cat .git/refs/heads/* #---------------查看两个分支都指向同一个commit history
git branch -d newidea #-----------------删除指定分支
git checkout -b newcode #------------------参数-b 作用:检查如果没有branch则新建立
git merge newcode #--------------合并分支
git merge bugfix #--------------合并分支Auto-merging test1.py
以上是关于git服务器的主要内容,如果未能解决你的问题,请参考以下文章