git之間是倉庫和倉庫之間的關(guān)系

如上圖所示,本地文件夾之內(nèi)的代碼管理和遠程repository之間關(guān)系是不同的</pre>
新建git repository的方法
1.從遠程的repository中git clone xxx.git "指定目錄"克隆遠程repository
這樣項目中就自帶了.git 文件,里面會帶有所有代碼的hash快照狀態(tài)和commit狀態(tài)
2.本地git init目錄,這樣目錄中就會出現(xiàn).git的文件
所以,你git clone了別人的代碼,再git init了它。它就是沒有攜帶別人勞動成果的代碼,可以直接在原來的基礎(chǔ)上修改自己的代碼再push到自己的git地址上
本地working和repository之間的操作
在working directory和本地的repository之間還有一個stage area。
三者之間的代碼如長圖所示修改,可以用
git status查看相應是否進入緩存狀態(tài)來查看
遠程repository和本地的repository之間的聯(lián)系
- 建立聯(lián)系的方式是用ssh,公私鑰配對的方式來建立
$ ssh-keygen -t rsa -C "your_email@youremail.com"
用以上命令行來生成本地設(shè)備的公私鑰文件,將~/.ssh中的id_rsa.pub公鑰配置到遠程的git服務器上
只有公私鑰配對的設(shè)備之間才可以pull push代碼,不然什么阿貓阿狗都能改repository的代碼,不是暈菜了。
- 遠程服務器怎么知道提交的是誰呢
`git config --global user.name "youname"
git config--global user.email "youemail@163.com"`
以上命令行全局配置了你的git,這樣不管推送給remote就知道是誰推送的了。
本地對遠程repository的設(shè)置(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 pull 和 git push
在push之前pull一下代碼更新
- 建立分支branch
應用場景:A和B和C要分別開發(fā)不同的功能

建立分支,是本地的repository建立屬于自己的分支,再push到遠程的庫中
git branch youbranchname建立分支名稱
git checkout youbranchname切換到分支下開發(fā)功能
git merge合同分支,一定要在master的情況下去做合并
代碼沖突
代碼沖突難免的,隨緣HEAD,這個主要還是看diff軟件做沖突管理,下次再說
</pre>