您的位置:首页 > 其它

mac上给git server 添加一个repository,并且添加一个git client的访问权限

2014-09-20 11:20 288 查看
尝试在自己的mac上把git环境搭好,非常感谢周晓东同学提供的技术指导!

记录一下,方便以后建新仓库,以及给其他mac开权限。

**************************************************************************************************

mac上安装git server 可以参考:/article/5801782.html

***************************************************************************************************

1.在服务器 创建msdl空的respository

$su git

$cd /Users/git

$mkdir msdl

$cd msdl

$git init --bare (--bare flag 只是用来存储 pushes,不会当做本地 repository 来使用的)

2. 在git客户端,用yourname账号登录

$cd

$ssh-keygen

全部回车,生成默认的id_rsa.pub 没有密码

$cd .ssh

$cp id_rsa.pub yourname.pub

将yourname.pub 通过scp 或者u盘 或者邮件 发给服务器

3.在服务器端

(1)

$su git

$cd /Users/git/gitolite-admin/keydir

将客户端提供的yourname.pub 拷贝到这个目录

下面的3条命令是让更新生效:

$git add .

$git commit -a -m"add yourname"

$git push

(2)

修改配置文件,新增一个仓库msdl,并设置访问权限

$cd ../conf

$vi gitolite.conf

在最后新增两行,新增msdl仓库,同时添加用户的访问权限

repo msdl

RW+ = yourname

保存退出!

同样,下面的3条命令是让更新生效:

$git add .

$git commit -a -m"add yourname"

$git push

说明:

比如需要给msdl新增一个用户othername的访问权限

先把othername.pub放到keydir下面,git更新生效

然后修改gitolite.conf,在youname的后面加:空格othername ,变成

repo msdl

RW+ = yourname othername

保存退出,git更新生效

4.回到git客户端

$cd /dir/to/clone/msdl

git clone git@192.168.1.225:msdl

5.打开sourceTree

添加一个working copy,选择 /dir/to/clone/msdl,即可!

大功告成!

6. 如果公司的ip(172.16.0.131)和家里的ip(192.168.1.225)不一样,只能commit,不能push和pull,怎么破?

1.修改服务器的gitolite-admin的ip

vi /Users/git/gitolite-admin/.git/config

[remote "origin"]

url = git@192.168.1.225:/gitolite-admin

修改ip 192.168.1.225 为 172.16.0.131

[remote "origin"]

url = git@172.16.0.131:/gitolite-admin

注:直接修改配置文件,不需要git push

2.修改客户端的repository地址

vi $PROJECT_PATH/.git/config

[remote "origin"]

url = git@192.168.1.225:msdl

修改ip 192.168.1.225 为 172.16.0.131

[remote "origin"]

url = git@172.16.0.131:msdl

#######分割线##############################################

git reset --hard 回滚到之前的版本以后,怎么撤销这一步回滚操作?

git stash save

git reflog

git checkout

git branch

stash你现在的脏内容。用reflog找到你要回去的commit,checkout过去然后建个分支跟原来得分支merge。

可以通过reflog来进行恢复,前提是丢失的分支或commit信息没有被git gc清除(一般情况下,gc对那些无用的object会保留很长时间后才清除的)

可以使用git reflog show或git log -g命令来看到所有的操作日志

恢复的过程很简单:

1.通过git log -g命令来找到需要恢复的信息对应的commitid,可以通过提交的时间和日期来辨别,找到执行reset --hard之前的那个commit对应的commitid

2.通过git branch recover_branch commitid 来建立一个新的分支。这样,就把到commitid为止的代码、各种提交记录等信息都恢复到了recover_branch分支上了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐