原文連接:點我git
首先新司機接觸 Git 和 Github 可能會搞不清楚二者之間的關係,這裏稍微解釋一下:github
1.Git是一款免費、開源的分佈式版本控制系統 windows
2.Github是用Git作版本控制的代碼託管平臺bash
本地倉庫
主要介紹:ssh
創建本地倉庫
(注意此處忽略選擇目錄,也就是說在現實操做中咱們須要新建或跳轉到咱們選擇的文件夾,來創建本地倉庫)分佈式
能夠看到命令執行後在當前目錄下出現一個.git目錄,是Git用來跟蹤管理版本庫的。加密
查看當前項目狀態
建立完本地倉庫,先查看下當前項目狀態spa
能夠看到如今是處於master分支,master分支都是最終版本的代碼,因此後面涉及到協同工做中其餘分支merge到master分支概念,後再提。.net
倉庫狀態
1.3是添加和快照,這裏咱們能夠看到Trygithub已經給咱們建立好的一個txt文檔。這時候再執行git status查看此時建立一個txt後倉庫會有的狀態狀態。3d
這裏咱們看到,倉庫狀態顯示,一個沒有被跟蹤到的文件「octocat.txt」,並還沒有提交。
添加
這裏的git add命令是爲了讓文件添加到Git暫存區,其實也就是讓git知道有個新文件添加進來了。
暫存區和工做區概念可參考 git工做區和暫存區
查看添加文件後倉庫當前狀態
這裏能夠看到倉庫當前狀態爲
已經提交修改
新文件:octocat.txt
提交(快照)
這裏commit有的地方叫提交,有的地方叫快照,但都是一個意思。
這裏
1 git commit -m "你的註釋"
實際上操做是將暫存區的的文件提交到當前分支。
但簡單來講,也能夠理解爲咱們每次對項目作修改時都須要有一個註釋(快照)。這樣使得咱們在之後再看咱們的項目時知道咱們當時修改了什麼東西。
添加全部.txt類型文件並快照
這裏能夠發現,只要是.txt格式的文件,不管是在octofamily目錄下仍是根目錄下都被添加
查看日誌
到目前爲止已經執行了兩個git commit命令,此時咱們想看一下咱們已經有的全部快照,因而執行git log 命令。
到此爲止,在本地倉庫所作的全部工做結束。
遠程倉庫
主要介紹:
遠程倉庫
這裏要作的是將你的本地倉庫與GitHub上遠程倉庫連接起來。
這個工做的主要意義是,將你的修改提交到遠程倉庫(pull),也能夠將別人的修改從遠程倉庫拉到本身的本地倉庫裏(push),以便共享。
但首先你要有個本身的GitHub帳號,並建好remote repository。
需注意,本地Git倉庫和GitHub倉庫之間的傳輸是經過SSH加密的。這裏須要作:
這裏進入你想要做爲遠程倉庫的repository的界面,在
Clone or download獲得你所要連接的遠程倉庫 URL。
在1.10中,它所提供的https://github.com/try-git/try_git.git 即爲須要鏈接的遠程倉庫 URL。
pull & push
上傳本地倉庫內容至遠程
git push -u origin master
第一次推送master分支時,加上了-u參數,在之後的推送或者拉取時就能夠簡化命令。
拉取遠程倉庫中別人的修改
git pull origin master
差別
查看在最後一次提交以後的全部變動git differ HEAD
查看添加(add)而並未提交(commit)的變動 git differ --staged
撤銷
此處詳細介紹了git reset 的使用
改變暫存區的快照,工做區無變化
git checkout -- file的使用
改變工做區的快照
分支操做
建立分支clean_up: git branch clean_up
跳轉分支clean_up:git checkout clean_up
此時可見on branch clean_up處於分支clean_up
刪除分支中全部.txt類型文件:git rm '*.txt'
此時可見下方目錄中全部*.txt類型文件都被刪除
在分支進行刪除操做依舊須要提交快照:git commit -m "Remove all the cats"
合併(merge)
跳轉回master分支,發現*.txt類型文件依舊存在:git branch master
執行合併,將在clean_up分支上的修改合併到master上:git merge clean_up
刪除分支clan_up:git branch -d clean_up
push
完成遠程倉庫中所git push