尝试在自己的mac上把git环境搭好,非常感谢周晓东同学提供的技术指导!
记录一下,方便以后建新仓库,以及给其他mac开权限。
**************************************************************************************************
mac上安装git server 可以参考:http://www.cnblogs.com/eileenleung/p/3503337.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更新生效
$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分支上了。