Git / Gitolite 的应用学习(3)

四、设置其他用户权限

现在本地的windows客户端已经是管理员权限了,假设我们又有一台Linux的客户端也需要使用,如果给他权限,下面就来演示:

首先生成秘钥:

# ssh-keygen -t rsa

# cd .ssh/

# mv id_rsa.pub 104.pub    # 重命名是为了方便识别的

# yum -y install lrzsz

# sz 104.pub                # 下载到windows上,并放到windows上的gitolite-admin下的keysdir

# mkdir -pv /src/project    # 新建版本库的目录

添加完成后,我们在windows客户端操作,使Git服务器识别该主机的信息

Git / Gitolite 的应用学习

1、我们首先把104加到testing库的权限上

2、git status: 可以查看当前的工作区的状态信息(修改、新增等)

Git / Gitolite 的应用学习

Git / Gitolite 的应用学习

这里直接省略了origin master这参数,可能会有警告。上述就是提交后并推送到服务器。此时,104这台机器对testing库就拥有了读写和更新的权限。这里的用户是和公钥的名称一致的。

在Linux 104客户端做测试:

# cd /src/project

# git clone git@10.95.10.103:testing

Initialized empty Git repository in /src/project/testing/.git/

warning: You appear to have cloned an empty repository.

# ls

testing

# 这里看到可以正常clone下一个testing库。因为testing库里面没有任何内容。所以提示为空

到此,添加用户以及授权基本完成。并学习了几个命令。

五、新建项目库并同步到服务器和其他用户协同工作

1、首先要先在服务器注册库并分配权限

Git / Gitolite 的应用学习

git diff: 可以显示修改的文件内容。

从上述可以看到

新增了一个用户组:@platform_team,且有两个用户chengfeng 104

新增了一个库:platform,且该组有读写更新权限,所有人有读权限

Git / Gitolite 的应用学习

此时,push后会自动在服务器端创建一个注册的库。

然后可以在Linux客户端和windows客户端同时clone下来platform库。

# git clone git@10.95.10.103:platform

Initialized empty Git repository in /src/project/platform/.git/

warning: You appear to have cloned an empty repository.

# ls

platform  testing

# 现在可以看到库了。

2、创建第一个README文件

Git / Gitolite 的应用学习

上面添加了一个README文件。并推送到了Git服务器。现在Linux客户端可以pull到最新的类容了。

# cd platform/

# git pull                    # 拉取Git服务器的最新数据

remote: Counting objects: 6, done.

remote: Compressing objects: 100% (2/2), done.

remote: Total 6 (delta 0), reused 0 (delta 0)

Unpacking objects: 100% (6/6), done.

From 10.95.10.103:platform

* [new branch]      master    -> origin/master

# ls

README

# cat README 

This is Git Test File.

现在就可以看到两台机器都有数据了。权限也是生效的。

六、Git的一些其他命令

# git commit -m "add two lines."

[master 0cf7775] add two lines.

Committer: root 

Your name and email address were configured automatically based

on your username and hostname. Please check that they are accurate.

You can suppress this message by setting them explicitly:

git config --global user.name "Your Name"

git config --global user.email you@example.com

If the identity used for this commit is wrong, you can fix it with:

git commit --amend --author='Your Name '

#上述提示的是因为我们在Linux客户端第一次提交修改,所以需要设置一些参数,可以设置为全局参数,也可以每次提交时都写用户和邮箱。下面我们设置全局参数。

# git config --global user.name "104"

# git config --global user.email "104@admin.com"

# git add .

# git commit -m "add two lines."

# git push origin master

Counting objects: 5, done.

Compressing objects: 100% (2/2), done.

Writing objects: 100% (3/3), 290 bytes, done.

Total 3 (delta 0), reused 0 (delta 0)

To git@10.95.10.103:platform

fe2f251..0cf7775  master -> master

# 现在提交推送都正常了。

现在我们在windows上checkout出最新版本:

Git / Gitolite 的应用学习

现在假如我们做了一些错误的修改,并且提交了。想回到为提交之前的版本:

Git / Gitolite 的应用学习

上面可以看到我删除了两行,也添加了新行。

Git / Gitolite 的应用学习

可以看到已经回到了刚刚更新的状态。命令如下:

git reset --hard HEAD^: 回到所有内容到上个版本,上上个就是:HEAD^^,上10个就是:HEAD~10

还有很多相关的命令需要慢慢去了解。

git revert HEAD: 撤销某次提交,并生成一个新的提交

命令太多。以后用到再说...

如有错误,还请指出

Git 的详细介绍请点这里
Git 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/19e0b9ba65e661972469d22ab2c52541.html