git

作者: jump_go | 来源:发表于2018-03-28 23:24 被阅读0次

    git之间是仓库和仓库之间的关系

    git关系梳理图

    如上图所示,本地文件夹之内的代码管理和远程repository之间关系是不同的</pre>

    新建git repository的方法

    1.从远程的repository中git clone xxx.git "指定目录"克隆远程repository
    这样项目中就自带了.git 文件,里面会带有所有代码的hash快照状态和commit状态

    2.本地git init目录,这样目录中就会出现.git的文件
    所以,你git clone了别人的代码,再git init了它。它就是没有携带别人劳动成果的代码,可以直接在原来的基础上修改自己的代码再push到自己的git地址上

    本地working和repository之间的操作

    • 在working directory和本地的repository之间还有一个stage area。

    • 三者之间的代码如长图所示修改,可以用git status查看相应是否进入缓存状态来查看

    远程repository和本地的repository之间的联系

    • 建立联系的方式是用ssh,公私钥配对的方式来建立

    $ ssh-keygen -t rsa -C "your_email@youremail.com"

    用以上命令行来生成本地设备的公私钥文件,将~/.ssh中的id_rsa.pub公钥配置到远程的git服务器上

    只有公私钥配对的设备之间才可以pull push代码,不然什么阿猫阿狗都能改repository的代码,不是晕菜了。

    • 远程服务器怎么知道提交的是谁呢

    `git config --global user.name "youname"

    git config--global user.email "youemail@163.com"`

    以上命令行全局配置了你的git,这样不管推送给remote就知道是谁推送的了。

    本地对远程repository的设置(git remote)

    应用场景:如果你不是一套代码推送多个git库,其实没有必要学这个,当时被这个知识点搞晕了很久

    tip:对git remote命令行的操作,并不能对真正的远程repository有任何影响,

    仅仅是本地对remote repository的操作更加的方便便捷而已,毕竟你一套代码会推送多个远程git库

    • 一套代码推送多个remote repository

    git remote -v查看当前git push的远程库名称和地址

    git remote add youname git@github.giti因为git要求每台远程主机上要有主机名,所以在push之前你可以给主机名命名(默认origin)

    git remote remove yousetname 删除本地git中给远程主机配置的名字

    git remote set-url youname git@yougit.git重命名远程git的名字

    远程repository和本地代码的提交

    - 基本的git pullgit push

    在push之前pull一下代码更新

    • 建立分支branch
    应用场景:A和B和C要分别开发不同的功能
    分支关系图s

    建立分支,是本地的repository建立属于自己的分支,再push到远程的库中

    git branch youbranchname建立分支名称

    git checkout youbranchname切换到分支下开发功能

    git merge合同分支,一定要在master的情况下去做合并

    代码冲突

    代码冲突难免的,随缘HEAD,这个主要还是看diff软件做冲突管理,下次再说

    </pre>

    相关文章

      网友评论

          本文标题:git

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