四、设置其他用户权限
现在本地的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服务器识别该主机的信息
1、我们首先把104加到testing库的权限上
2、git status: 可以查看当前的工作区的状态信息(修改、新增等)
这里直接省略了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 diff: 可以显示修改的文件内容。
从上述可以看到
新增了一个用户组:@platform_team,且有两个用户chengfeng 104
新增了一个库:platform,且该组有读写更新权限,所有人有读权限
此时,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文件
上面添加了一个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 reset --hard HEAD^: 回到所有内容到上个版本,上上个就是:HEAD^^,上10个就是:HEAD~10
还有很多相关的命令需要慢慢去了解。
git revert HEAD: 撤销某次提交,并生成一个新的提交
命令太多。以后用到再说...
如有错误,还请指出