美文网首页
摸索中使用Git

摸索中使用Git

作者: 下岗奶爸 | 来源:发表于2014-12-01 23:29 被阅读52次

    搭建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,不让提交。也不知道这么搞会不会有什么问题。

    相关文章

      网友评论

          本文标题:摸索中使用Git

          本文链接:https://www.haomeiwen.com/subject/rsfgtttx.html