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í)行g(shù)it 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的參數(shù)表示創(chuàng)建并切換。
git checkout -b dev
相當于:
git branch dev
git checkout dev
  1. 用git branch 命令來查看當前的分支,這個命令會列出所有分支,當前分支前會有一個※號
  2. 切換分支采用 git checkout master
  3. 合并分支的內(nèi)容到master上 git merge dev
  4. 刪除branch: git branch -d dev

stash分支存儲

  1. GIt提供了一個stash功能,可以把當前的工作現(xiàn)場儲藏起來,等以后恢復現(xiàn)場后繼續(xù)工作
  2. git stash 把當前分支例如dev工作現(xiàn)場儲存
  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ā)現(xiàn)工作現(xiàn)場是干凈的 用git stash list命令查看存儲的內(nèi)容
  2. 恢復:git stash apply 恢復后stash內(nèi)容不刪除,可以用git stash drop來刪除;git stash pop 恢復的同時把stash內(nèi)容也刪除了;
恢復指定的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中,可以適當?shù)嘏渲?/li>
  • 當前用戶的git配置文件在用戶主目錄下的一個隱藏文件.gitconfig中

Github 使用入門

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

關(guān)聯(lián)SSH秘鑰

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

  1. 創(chuàng)建SSH Key 在用戶主目錄下,看有沒有~/.ssh目錄下有沒有id_rsa和id_rsa.pub文件,id_rsa是私鑰,id_rsa.pub是公鑰,如果有就跳過這一步。
設(shè)置username和email 用于方便github記錄commit的內(nèi)容
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的設(shè)置里。
  2. 添加多個鑰匙的好處就是可以允許多個電腦來推送改動,也可以不用SSH但是每次推送都要輸入用戶名密碼。

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

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

使用示例

有個本地的文件夾里面有很多子目錄和代碼,想要關(guān)聯(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:.....  //關(guān)聯(lián)github上創(chuàng)建的遠程的repository
git push -u origin master                   //把本地內(nèi)容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 把
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容