同福

Git使用笔记

介绍

介绍

Git是一款代码版本管理工具,它的特点是一个项目一个库,更新是整体更新,提交也是整体提交。

利用分支(branch)来实现协同开发,利用合并(merge)来提交协同开发的代码。

安装

安装

使用yum安装git

yum -y install git

配置

配置

创建用户 git

为 git 设置密码

useradd git
passwd git

5b836e91fcb77226.jpg授权git目录

mkdir git /git/
chown -R git:git /git/

禁用git登录

[root@git /]# vi /etc/passwd

git:x:1000:1000::/home/git:/bin/git-shell

启动git,其实git依赖的是ssh服务,所以一般情况下我们不需要单独安装

如果是在虚拟机(Docker)当中使用git服务的话,就需要执行下面的命令了

yum -y install openssh-server
systemctl start sshd
systemctl enable sshd

如果是在虚拟机(Docker)当中使用git服务,建议将ssh默认端口22换成其他的,例如:8022就不错

[root@git]# vi /etc/ssh/sshd_config

Port 8022

[root@git]# systemctl restart sshd

使用

创建库

创建git库tongfunet

cd /git/
git init --bare tongfunet

e0a73115cadf7c9f.jpg授权git库tongfunet(重要)

chown -R git:git /git/tongfunet/

测试

我们创建 /web/ 目录用来作为测试检出库代码的主目录

mkdir -p /web/
cd /web/

克隆git库tongfunet

git clone ssh://git@localhost:8022/git/tongfunet/

031b058b6ffde417.jpg进入git库tongfunet

cd /web/tongfunet/

多用户

配置

一般情况下,我们开发都是团队进行的,这时就需要分配多个账户管理一套代码

建立子账号

建立了两个账号 zhang3、li4

useradd -g git zhang3
useradd -g git li4

子账号设置密码

给两个账号设置密码

passwd zhang3
passwd li4

授权项目目录

福哥给代码库使用了 0775 权限,也就是说目录所有者和组都可以有完全控制权,而我们的zhang3和li4所属组都是git,所以zhang3和li4都可以操纵这个仓库了

chmod 0775 -R /git/tongfunet/

分支

master分支

代码库默认的分支就是master分支

在使用之前需要设置user.email和user.name,否则会提示错误

git config --global user.email "whoami@git.com"
git config --global user.name "whoami"

4b234c00be78861e.jpg切换到master分支

git checkout -b master

添加一个文件并提交(重要)

touch README
git add README
git commit -m 'init'

提交master分支

git push origin master

更新合并分支

使用pull命令进行更新合并操作

拉取主机origin的最新版本

git pull origin

拉取主机origin的dev分支的最新版本

git pull origin dev

拉取主机origin的dev分支与本地dev200103分支合并

git pull origin dev:dev200103

拉取主机origin的dev分支与本地当前分支合并

git pull origin dev

分解操作

使用pull命令和使用fetch,merge效果是一样的

git fetch origin
git merge origin/dev

使用rebase合并

简单说就是从服务器拉取最新版本,替换本地代码(不是合并)

git pull --rebase origin dev

建立分支

建立分支dev

创建dev分支,并切换到dev分支

[root@git tongfunet]# git checkout -b dev
Switched to a new branch 'dev'

上面的命令等价于

[root@git tongfunet]# git branch dev
[root@git tongfunet]# git checkout dev
Switched to a new branch 'dev'

查看分支

查看当前分支

[root@git tongfunet]# git branch
* dev
  master

提交分支

提交修改到分支dev

[root@git tongfunet]# touch readme.txt
[root@git tongfunet]# git add readme.txt
[root@git tongfunet]# git commit -m "add readme file"
1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 www/readme.txt

提交分支dev

git push origin dev

删除分支

删除分支dev

[root@git tongfunet]# git branch -d dev
Deleted branch dev (was a0699123a).

分支覆盖

强制用master分支覆盖本地分支

git fetch --all
git reset --hard origin/master
git pull

总结

以上就是使用git开发时候的一些基本流程!