git使用入門和github配置入門

參考資料

git 基本指令

  • git init:在當前目錄下脱篙,把這個目錄變成git可以管理的倉庫凸主。創(chuàng)建完成后目錄中多了一個.git的目錄举瑰,用來追蹤git的版本. 工作區(qū)是你電腦里面的文件夾捉腥,倉庫是git創(chuàng)建的快照妓灌,用于版本管理。
  • git add和git commit:git add用來將文件添加到倉庫幔戏,git commit 提交到倉庫玛追。git add 命令實際上是把要提交的所有修改放到暫存區(qū)stage,然后執(zhí)行git commit 就可以一次性把暫存區(qū)的所有提交修改到分支闲延。提交完,stage就是干凈的韩玩。如果不用git add到暫存區(qū)stage垒玲,則不會加入到commit中。
添加一個文件并提交 
git add readme.md
git commit -m "a new readme file " 

添加多個文件并提交
git add file1.txt
git add file2.text file3.txt
git commit -m "add 3 files"

添加所有文件并提交
git add .
git add file2.text file3.txt
git commit -m "add all files"

  • git status 查看倉庫的當前狀態(tài)(很重要)找颓;
  • git diff <yourfilename> 查看修改的不同之處
  • git log 命令顯示從最近到最遠的提交日志
  • git reset 退回到之前的版本
退回到上個版本:HEAD表示當前版本合愈,HEAD^表示上個版本,HEAD^^表示上上個版本击狮,HEAD~100表示上100個版本佛析。
git reset --hard HEAD^
回到特定的commit id h
git reset --hard <commit id>  例如1094a 
  • git reflog 來記錄每一次的操作指令,通過這個可以查看之前的commit id號
  • git rm:來刪除文件彪蓬,同時還會將這個刪除操作記錄下來寸莫;如果手動刪了文件夾里面的文件,然后需要同步到git上的版本庫的話就用git rm 然后提交档冬。如果確實是刪錯了的話就用git checkout --test.txt來把誤刪的文件恢復到最新的版本膘茎。
刪除工作區(qū)文件:
bash下執(zhí)行刪除指令
rm README.md  
確定也要把版本庫里的也刪除:
git rm README.md
git commit -n "remove README.md"

如果刪錯了想從版本庫里面找回
git checkout -- README.md

git 分支管理

創(chuàng)建和合并分支

  1. 創(chuàng)建dev分支 然后切換到dev分支,git checkout 加-b的參數表示創(chuàng)建并切換。
git checkout -b dev
相當于:
git branch dev
git checkout dev
  1. 用git branch 命令來查看當前的分支酷誓,這個命令會列出所有分支披坏,當前分支前會有一個※號
  2. 切換分支采用 git checkout master
  3. 合并分支的內容到master上 git merge dev
  4. 刪除branch: git branch -d dev

stash分支存儲

  1. GIt提供了一個stash功能,可以把當前的工作現場儲藏起來盐数,等以后恢復現場后繼續(xù)工作
  2. git stash 把當前分支例如dev工作現場儲存
  3. 儲存完后用git status查看工作區(qū)是干凈的棒拂,選擇master分支,從master臨時創(chuàng)建分支:
git checkout master
git checkout -b issue-101
  1. 修改完后提交
git add README.md
git commit -m "fix the readme"
  1. 修改完成后 切換到master分支合并玫氢,并刪除issue-101分支
git checkout master
git merge --no-ff -m "merged issue-101" issue-101
  1. 回到dev分支干活
git checkout dev
查看工作狀態(tài)
git status
  1. 發(fā)現工作現場是干凈的 用git stash list命令查看存儲的內容
  2. 恢復:git stash apply 恢復后stash內容不刪除帚屉,可以用git stash drop來刪除;git stash pop 恢復的同時把stash內容也刪除了琐旁;
恢復指定的stash
git stash apply stash@{0}

標簽

創(chuàng)建標簽

  1. 切換到需要標簽的分支上打上標簽涮阔,比如版本號v7.7
git branch
git checkout master
git tag <name>
  1. 用git tag 查看所有標簽
  2. 用git show <tagname>來查看標簽信息
還可以創(chuàng)建帶有說明的標簽,用-a指定標簽名灰殴,-m指定說明文字
git tag -a v0.1 -m "version 0.1 released" 1094adb

操作標簽

  • 命令git push origin <tagname>可以推送一個本地標簽敬特;
  • 命令git push origin --tags可以推送全部未推送過的本地標簽掰邢;
  • 命令git tag -d <tagname>可以刪除一個本地標簽
  • 命令git push origin :refs/tags/<tagname>可以刪除一個遠程標簽

配置

  • 每個倉庫的git的配置文件在.git/config中,可以適當地配置
  • 當前用戶的git配置文件在用戶主目錄下的一個隱藏文件.gitconfig中

Github 使用入門

Git是linux之父在05年用了整整兩個禮拜的時間寫的一個分布式版本控制系統(tǒng)伟阔,而github是一個08年上線的遠程倉庫辣之,免費給開發(fā)者進行代碼托管。

關聯(lián)SSH秘鑰

本地git和github的倉庫傳輸可以通過很多傳輸協(xié)議加密皱炉,其中有SSH加密以及http加密等怀估,http每次push內容到github的時候總是需要輸入用戶名和密碼,而且速度相對于SSH沒有優(yōu)勢合搅。

  1. 創(chuàng)建SSH Key 在用戶主目錄下多搀,看有沒有~/.ssh目錄下有沒有id_rsa和id_rsa.pub文件,id_rsa是私鑰灾部,id_rsa.pub是公鑰康铭,如果有就跳過這一步。
設置username和email 用于方便github記錄commit的內容
git config --global user.name "your name"
git config --global user.email "your email"

創(chuàng)建SSH key
ssh-keygen -t rsa -C "youremail@example.com"
  1. 把公鑰粘貼到Github Account settings中 SSH Keys的設置里赌髓。
  2. 添加多個鑰匙的好處就是可以允許多個電腦來推送改動从藤,也可以不用SSH但是每次推送都要輸入用戶名密碼。

關聯(lián)遠程和本地倉庫

  1. 首先在github上創(chuàng)建一個repository
  2. 把本地的倉庫關聯(lián)到github上的倉庫.其中origin是遠程庫的默認的名字git@.... 加你在github上生成的ssh地址
在本地倉庫的目錄下:
git remote add origin git@.....
  1. 把本地庫的所有內容推送到遠程庫,git push命令實際上是把當前分支master推送到遠程 -u指令可以不但會把本地master分支內容推送到遠程新的master分支锁蠕,還會把本地的master分支和遠程的master分支關聯(lián)起來夷野。
git push -u origin master
  1. 以后只要本地做了提交,就可以通過命令git push origin master 推送給Github

使用示例

有個本地的文件夾里面有很多子目錄和代碼荣倾,想要關聯(lián)到github上創(chuàng)建的repository中

cd ~/bala  //進入到你的文件夾中
git init   //把該文件夾變成git管理的倉庫
git add .   //添加主文件夾所有子目錄和文件
git commit -m "first commit"
git remote add origin git@github.com:.....  //關聯(lián)github上創(chuàng)建的遠程的repository
git push -u origin master                   //把本地內容push到github上
  • 如果push的時候報錯悯搔,很可能是github上創(chuàng)建repository時候生成了一個README.md,導致遠程倉庫和本地倉庫沖突
1.強制push
git push -u origin master -f  這樣會導致遠程修改丟失
2.先將遠程的倉庫pull下來逃呼,再push
git pull origin master
git push -u origin master

從遠程庫克隆

  • 看到牛人的牛代碼就git clone 把
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末鳖孤,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子抡笼,更是在濱河造成了極大的恐慌苏揣,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件推姻,死亡現場離奇詭異平匈,居然都是意外死亡,警方通過查閱死者的電腦和手機藏古,發(fā)現死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門增炭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拧晕,你說我怎么就攤上這事隙姿。” “怎么了厂捞?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵输玷,是天一觀的道長队丝。 經常有香客問我,道長欲鹏,這世上最難降的妖魔是什么机久? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮赔嚎,結果婚禮上膘盖,老公的妹妹穿的比我還像新娘。我一直安慰自己尤误,他們只是感情好侠畔,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著损晤,像睡著了一般践图。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沉馆,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天,我揣著相機與錄音德崭,去河邊找鬼斥黑。 笑死,一個胖子當著我的面吹牛眉厨,可吹牛的內容都是我干的锌奴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼憾股,長吁一口氣:“原來是場噩夢啊……” “哼鹿蜀!你這毒婦竟也來了?” 一聲冷哼從身側響起服球,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤茴恰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后斩熊,有當地人在樹林里發(fā)現了一具尸體往枣,經...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年粉渠,在試婚紗的時候發(fā)現自己被綠了分冈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡霸株,死狀恐怖雕沉,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情去件,我是刑警寧澤坡椒,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布扰路,位于F島的核電站,受9級特大地震影響肠牲,放射性物質發(fā)生泄漏幼衰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一缀雳、第九天 我趴在偏房一處隱蔽的房頂上張望渡嚣。 院中可真熱鬧,春花似錦肥印、人聲如沸识椰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腹鹉。三九已至,卻和暖如春敷硅,著一層夾襖步出監(jiān)牢的瞬間功咒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工绞蹦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留力奋,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓幽七,卻偏偏與公主長得像景殷,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子澡屡,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內容

  • Git 基礎 基本原理 客戶端并不是只提取最新版本的文件快照猿挚,而是把代碼倉庫完整的鏡像下來。這樣一來驶鹉,任何一處協(xié)同...
    __silhouette閱讀 15,887評論 5 147
  • Git 命令行學習筆記 Git 基礎 基本原理 客戶端并不是只提取最新版本的文件快照绩蜻,而是把代碼倉庫完整的鏡像下來...
    sunnyghx閱讀 3,922評論 0 11
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,665評論 4 54
  • 什么是好內容梁厉?這不是一個有標準答案的問題辜羊。 但綜觀那些公認的好內容,又不難發(fā)現這個答案背后的共性词顾,那就是“價值”與...
    奔跑的大橘子閱讀 697評論 2 10
  • 早晨起床學習了德芬空間關于覺察力的課程八秃,這個課程很短,但是對我而言肉盹,挺難理解昔驱。所以花了一個小時,把課程聽了3遍上忍。這...
    藍心百合閱讀 336評論 0 0