摸索中使用Git

搭建Git Server

cd my_project
git init
git add .
git commit -m 'first commit'
cd ..
git clone --bare my_project my_project.git

这样就可以通过SSH去clone my_project.git 这个仓库了。
不过这样还有很多问题。首先是权限,先要创建一个group:

groupadd git

把相关的账号加入到这个group:

gpasswd -a use1 git

还要把仓库的权限设为git组可读写:

chown -R root:git .
chmod -R 771 .

另外,要把仓库设置成shared,我之前写过一篇文章解决这个问题,在这里
书上有个写法:

git init --bare --shared

不过我没试过,下次再建server时可以试试。

配合远端server使用Git

本地使用基本没有问题,按照一般的教程来就可以。关于远端的使用,好像没有发现系统性讲解的教程,只能在使用中发现问题、解决问题。

分支关联

如果本地还没有远端的分支,可以这样:

git checkout --track origin/my_branch

会在本地创建一个分支my_branch并与远端的origin/my_branch建立关联。
如果本地已经有了my_branch,并且想和远端的建立关联,则要这样:

git branch --set-upstream my_branch origin/my_branch

要确认分支是否关联上了,可以打开.git/config,看有没有下面这些:

 [branch "my_branch"]
         remote = origin
         merge = refs/heads/my_branch

分支关联上以后,pull时就不需要指定分支了,直接在当前分支下git pull就可以更新当前分支。其它的用处还不知道,没敢试。

fetch

关于fetch我还不是十分理解。git fetch origin my_branch是不能把这个分支最新的代码fetch下来的。只能用git fetch origin,把所有的分支都fetch下来,然后到相关的分支去merge

git fetch origin
git merge origin/my_branch

push

遇到过一个问题,要回滚远端的代码。先reset到需要回滚的点:

git reset --hard <commit_id>

然后修改代码,改完后,push时要加上--force

git push origin my_branch --force

否则会提示什么不是fast-forward,不让提交。也不知道这么搞会不会有什么问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容