git是一款免費/開源的分布式版本控制系統.
github是一個面向開源及私有軟件項目的托管平台,因為只支持git作為唯一的版本庫格式進行托管.
一、git的工作原理圖:
workspace:工作區
index/staged:暫存區
repository:本地倉庫
remote:遠程倉庫
workspace首先是add到index上,讓后commit到repository,再push到remote.
二、基本操作命令:
(1). 返回上一級目錄:cd .. (cd 與 .. 之間有一空格)。
(2). 進入某一目錄:cd git (進入 git 目錄)。
(3). 顯示當前路徑:pwd。
三、git創建文件:
git安裝時會自帶一個git bash工具,用起來感覺比cmd方便。可今天發現一個問題,用git bash無法創建文件夾和文件。在cmd下,只需要 md+文件夾名 就可以創建一個文件夾,可md在git bash下是無效的命令。
原因是cmd和git bash是兩個完全不同的工具,cmd用的是Windows自己的命令,而git bash用的是linux下的命令。
在git bash新建文件夾命令是 mkdir+文件夾名。
新建文件有兩種方式:
1,touch+文件名,直接新建一個文件
2,vi+文件名,新建一個文件並進入編輯狀態(如果文件已存在,則直接進入編輯狀態)
vi其實是linux的一個文本編輯器,所以 vi+文件名 后,其實是進入vi程序了。
四、git的運行邏輯:
3步>>>>>>>>>
1.創建git倉庫.
創建倉庫分為2步:
<1>本地是沒有庫的,從服務器pull庫到本地來.
<2>本地有庫,上傳庫到服務器中.
2.提交本地代碼
<1>git add . 是添加所有當前目錄的所有文件
<2>git commit -m “這里是添加注釋” :和服務器的代碼合並
3.拉取遠程代碼
>>> git pull 合並有沖突的代碼
(conflict:merger,修改了服務器原來的代碼替換成你的代碼,這些代碼有沖突,是選擇你的還是選擇原來的,有沖突的時候,會自動修改你寫的代碼,並保留服務器原來的代碼,如果你是要修改服務器的,只要刪除自動添加的,再進行2<2>執行下一步步驟就行)
>>>提交代碼 git push
五、兩種方式clone服務器上的代碼庫:
1)https方式
通過填寫賬號和密碼就可以clone代碼庫
cmd例子: git clone https://xxx.xxx
2)ssh公鑰和私鑰方式
先在本地制作公鑰和私鑰.
cmd例:ssh-keygen -t rsa或者是ssh-key -t rsa -C “可以填任何東西文字一般寫郵箱,這段文字就在公鑰私鑰中文本的最后面”
>>>解釋:ssh-keygen -t rsa是直接制作公鑰和私鑰 -t是填寫加密的標准rsa 按下三層Enter的鍵可以看見公鑰和私鑰放在哪里了.(一般在C:\Users\Administrator\.ssh的文件夾中公鑰.pub后綴)
然后在服務器中生成公鑰,生成之后,在本地cmd中:git clone git@gitxx.x網址x.git就搞定clone代碼庫了
分支的作用:你的項目進行中遇到了一個問題,解決方案不確定,但是你不希望因此影響到當前的開發,那么你可以為此創建分支,然后在分支上測試你的方案,如果可行那么可以通過合並分支功能將你的更新應用到主干,反之你可以放棄它。
六、git常用命令
git status -s:查詢repo的狀態,-s表示short,輸出標記有兩列,第一列是對staging區域,第二列是working目錄
git log :顯示每條分支的合並歷史
–oneline –graph:可以圖形化表示分支合並歷史
–author=[author name]:指定作者提交歷史
git add . :帝國添加當前工作目錄中的所有文件
git commit:提交已經被add進來的改動
git的分支操作命令:
git branch -b name:創建分支
git branch:查看當前目錄的分支
git branch -d name:刪除分支
git push origin:name :刪除遠程分支
git checkout name:切換分支
git checkout –file:撤銷修改
git rm file :刪除文件
git log –graph :分支情況圖
七、git新建本地分支與遠程分支關聯問題:
1)git在本地新建分支,push到遠程服務器上之后,再次pull下來的時候,如果不做出來會報提示要求要up-to-data
所以,git本地新建一個分支后,必須要做遠程分支關聯.
例子>>
本地新建分支:git branch -b new_branch
將本地分支和遠程服務器關聯:git branch –set-upstream-to=origin/master new_branch
(將本地新建的分支new_branch分到服務器的origin/master的分支下)
2)跟蹤遠程的分支
git branch –set-upstream-to=origin/分支名 分支名
鏈接:https://blog.csdn.net/smile_lty/article/details/79930560
https://blog.csdn.net/baozhiqiangjava/article/details/79504321