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分支上了。
记录一下,方便以后建新仓库,以及给其他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分支上了。
相关文章推荐
- 未能添加对XX的引用,这不是一个有效的程序集或COM组件,只有具有扩展名dll的程序集和COM组件才能被引用。请确保该文件可访问,并且 是一个有效的程序集或COM组件
- 引用动态链接库Dll文件 引用失败 未能添加对HD.dll的引用。请确保此文件可访问并且是一个有效的程序集或COM组件
- 【发现】ASP.NET DEVELOPMENT SERVER 未能开始侦听端口xxxxx以一种访问权限不允许的方式做了一个访问套接字的尝试——解决方法
- LINQ下使用三层架构的探索(四)建立一个逻辑访问层,并且添加一些查询方法
- 据库 'UFDATA' 已打开,并且一次只能有一个用户访问。 (Microsoft SQL Server,错误: 924)
- 数据库xxx已打开,并且一次只能有一个用户访问。 (Microsoft SQL Server,错误: 924)
- 数据库 ' 库名' 已打开,并且一次只能有一个用户访问。 (Microsoft SQL Server,错误: 924)
- 解决Installer重新安装补丁错误-"无法打开此修补程序包。请确认该修补程序包存在,并且您可以访问它,或者与应用程序供应商联系,以确认这是否是一个有效的 Windows Installer 修补程序包。"
- ASP.Net的一个文件访问权限错误之解决
- 一个使用GridView显示数据,并且可以进行添加、修改、删除操作的例子
- 遇到一个问题“安装程序没有访问目录C:\Inetpub\wwwroot的权限”
- Net1.1添加目录共享,并设置访问权限
- 关于MMC不能打开文件C:\Program Files\Microsoft SQL Server\80\Tools\Binn\SQL Server Enterprise Manager.MSC可能是由于文件不存在,不是一个MMC控制台,或者用后来的MMC版本创建。也可能你没有访问此文件的足够权限
- ATL Server中 CAtlHttpClient 类的一个BUG
- ASP.NET DEVELOPMENT SERVER 未能开始侦听端口xxxxx以一种访问权限不允许的方式做了一个访问套接字的尝试--错误处理
- 操作必须使用一个可更新的查询;HTTP 500 - 内部服务器错误; 您未被授权查看该页;您不具备使用所提供的凭据查看该目录或页的权限;HTTP 错误 401.3 - 访问被资源 ACL 拒绝
- ReportingServices的一个问题,当前标识没有写访问权限。
- 使用DirectoryServices给文件添加访问权限
- IDTCPSERVER/IDTCPCLIENT设计一个外网和内网信息传递程序
- IIS出现server application error+没有对“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files”访问权限解决方法