Git詳解:Win10妒峦、Mac下Git環(huán)境配置炫贤、倉庫常用命令疆栏,GitHub聯(lián)系

 git --version

一、Git 使用前配置

在使用 git 前漾月,需要告訴 git 你是誰,在向 git 倉庫中提交時需要用到胃珍。

  1. 配置提交人姓名:git config --global user.name 提交人姓名
  2. 配置提交人姓名:git config --global user.email 提交人郵箱
  3. 查看git配置信息:git config --list

注意

  1. 如果要對配置信息進(jìn)行修改梁肿,重復(fù)上述命令即可。
  2. 配置只需要執(zhí)行一次觅彰。
  • 配置全局賬號吩蔑、郵箱
$ git config --global user.name "quanxxxheike" #設(shè)置自定義用戶名
$ git config --global user.email "183181xxxx@qq.com" #設(shè)置全局郵箱(使用github賬號郵箱)
 
$ git config --global user.name  #查看設(shè)置的全局用戶名
$ git config --global user.email #查看設(shè)置的全局郵箱
 
$ git config --global --unset user.name  #取消設(shè)置全局用戶名
$ git config --global --unset user.email #取消設(shè)置全局郵箱

image.png
  • 生成SSH Key

打開Git Bash,輸入命令,生成本地的ssh key(郵箱為自己的GitHub郵箱)填抬,一直回車烛芬。

$ ssh-keygen -t rsa -C "183181xxxx@qq.com" #郵箱換成你github賬號的郵箱
  • 在目錄【C:\Users\用戶名\.ssh 】,下產(chǎn)生兩個文件。其中赘娄,id_rsa是私鑰仆潮,id_ras.pub是公鑰。
image.png
  • 配置GitHub上的ssh遣臼,打開setting>>>new SSH Key>>>>>title(隨意)>>>>key(id_ras.pub)填入【C:\Users\用戶名\.ssh 】該目錄下的【id_ras.pub】的文件內(nèi)容性置。
    image.png
  • 打開Git Bash ,輸入以下命令揍堰,檢測是否成功鹏浅。
$ ssh -T git@github.com
image.png

Mac 打開終端,創(chuàng)建用戶名和密碼同上屏歹,生成ssh也同上隐砸,前往【個人】中找到.ssh,如果不存在則通過快捷鍵打開shit+commond+.打開隱藏文件蝙眶,找到里面的公鑰凰萨,配置同window一樣在GitHub上設(shè)置即可。

image.png

image.png

2械馆、 提交步驟

  1. git init 初始化git倉庫
  2. git status 查看文件狀態(tài)
  3. git add 文件列表 追蹤文件
  4. git commit -m 提交信息 向倉庫中提交代碼
  5. git log 查看提交記錄

3胖眷、撤銷

  • 用暫存區(qū)中的文件覆蓋工作目錄中的文件: git checkout 文件
  • 將文件從暫存區(qū)中刪除: git rm --cached 文件
  • 將 git 倉庫中指定的更新記錄恢復(fù)出來,并且覆蓋暫存區(qū)和工作目錄:git rest --hard commitID

二霹崎、Git進(jìn)階

1 分支

為了便于理解珊搀,大家暫時可以認(rèn)為分支就是當(dāng)前工作目錄中代碼的一份副本。
使用分支尾菇,可以讓我們從開發(fā)主線上分離出來境析,以免影響開發(fā)主線。

1分支細(xì)分
  1. 主分支(master):第一次向 git 倉庫中提交更新記錄時自動產(chǎn)生的一個分支派诬。
  2. 開發(fā)分支(develop):作為開發(fā)的分支劳淆,基于 master 分支創(chuàng)建。
  3. 功能分支(feature):作為開發(fā)具體功能的分支默赂,基于開發(fā)分支創(chuàng)建

創(chuàng)建分支---提交本地倉庫---再合并到主分支---主分支推送到遠(yuǎn)程---切換到分支----分支再推送到遠(yuǎn)程

  • git commit -m '登錄完成提交'
  • git checkout master
  • git merge login
  • git push
  • git checkout login
  • git push -u origin login

功能分支 -> 開發(fā)分支 -> 主分支

2 分支命令

  • git branch 查看分支
  • git branch 分支名稱 創(chuàng)建分支
  • git checkout 分支名稱 切換分支
  • git merge 來源分支 合并分支
  • git branch -d 分支名稱 刪除分支(分支被合并后才允許刪除)(-D 強制刪除)

3 暫時保存更改

在git中沛鸵,可以暫時提取分支上所有的改動并存儲,讓開發(fā)人員得到一個干凈的工作副本缆八,臨時轉(zhuǎn)向其他工作曲掰。不然在分支上創(chuàng)建的文件未提交到本地倉庫時切換到別的分支上也會存在該文件。如果該文件提交到本地倉庫后并沒有push到遠(yuǎn)程倉庫奈辰,則切換分支后該文件可能會被覆蓋栏妖。所以要么提交、要么存儲臨時改動
使用場景:分支臨時切換

  • 存儲臨時改動:git stash
  • 恢復(fù)改動:git stash pop

三. Github 先自行注冊按照前面所述

3.1Github 先自行注冊按照前面所述

3.2 多人協(xié)作開發(fā)流程

  • A在自己的計算機中創(chuàng)建本地倉庫
  • A在github中創(chuàng)建遠(yuǎn)程倉庫
  • A將本地倉庫推送到遠(yuǎn)程倉庫
  • B克隆遠(yuǎn)程倉庫到本地進(jìn)行開發(fā)
  • B將本地倉庫中開發(fā)的內(nèi)容推送到遠(yuǎn)程倉庫
  • A將遠(yuǎn)程倉庫中的最新內(nèi)容拉去到本地
image.png
image.png

3.3 創(chuàng)建倉庫

3.1. 填寫倉庫基本信息

3.2.將本地倉庫推送到遠(yuǎn)程倉庫

    1. git push 遠(yuǎn)程倉庫地址 分支名稱
      git push http://github.com.... master
    1. git push 遠(yuǎn)程倉庫地址別名 分支名稱
      git push origin master
    1. git push -u 遠(yuǎn)程倉庫地址別名 分支名稱
      -u 記住推送地址及分支奖恰,下次推送只需要輸入git push即可
      git push -u origin
      git push
    1. git remote add 遠(yuǎn)程倉庫地址別名 遠(yuǎn)程倉庫地址
      git remote add origin http://xxx
…or create a new repository on the command line

echo "# git-demo" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/quanqiuheike/git-demo.git
git push -u origin master

…or push an existing repository from the command line

git remote add origin https://github.com/quanqiuheike/git-demo.git
git push -u origin master

…or import code from another repository

You can initialize this repository with code from a Subversion, Mercurial, or TFS project.
image.png

四吊趾、Git常見命令集合

在線練習(xí)網(wǎng)站:git命令

在git工程下:

  • 查看git樹形圖
    git log –graph
  • 查看當(dāng)前branch和更改的文件
    git status

commit

  • 添加所有的修改文件至index
    git add .
    git ls-files # 列出git index包含的文件
    git rm xxx # 刪除index中的xxx文件
  • 取消添加的文件
    git reset . 或者git reset 文件名
  • 提交到本地倉庫
    git commit -m "your "
    git commit -m 'xxx' # 提交
    git commit --amend -m 'xxx' # 合并上一次提交(用于反復(fù)修改)
    git commit -am 'xxx' # 將add和commit合為一步

合并多個commit

git rebase -i
git rebase -i master~4 只操作master分支的最近4次commit

修改關(guān)鍵字說明:

pick:保留該commit(縮寫:p)
reword:保留該commit宛裕,但我需要修改該commit的注釋(縮寫:r)
edit:保留該commit, 但我要停下來修改該提交(不僅僅修改注釋)(縮寫:e)
squash:將該commit和前一個commit合并(縮寫:s)
fixup:將該commit和前一個commit合并,但我不要保留該提交的注釋信息(縮寫:f)
exec:執(zhí)行shell命令(縮寫:x)
drop:我要丟棄該commit(縮寫:d)
a編輯 esc退出編輯 :wq保存編輯
git commit --amend將改動合并到上一個commit

拉取 Pull

  • git pull 拉取當(dāng)前分支最新代碼
  • git pull -r 拉取最近代碼 并將commit節(jié)點移到最新
  • git pull origin master rebase 拉取指定分支代碼

取消本地commit

  • git reset HEAD~2 回退向前兩個版本的commit記錄(刪除最新的兩次commit記錄)
  • git reset --mixed commit_id 取消add和commit操作 不改變代碼论泛。
  • git reset --soft commit_id 取消commit操作 不撤銷add续滋,不改變代碼。
  • git reset --hard commit_id 去向commit并將代碼還原到之前版本

* 撤銷遠(yuǎn)程分支提交記錄

git revert <id> 撤銷某個提交記錄
git push 推送到遠(yuǎn)程分支

分支

  • 查看遠(yuǎn)程所有分支
    git branch -r
  • 查看本地倉庫所有分支
    git branch
  • 查看本地和遠(yuǎn)程所有分支
    git branch -a
  • 創(chuàng)建分支
    git branch <branchName>
  • 切換到某分支
    git checkout <branchName>
  • 創(chuàng)建并切換到當(dāng)前分支
    git checkout -b <your-branch-name> 相當(dāng)于上兩步
  • 從遠(yuǎn)程分支檢出并關(guān)聯(lián)
    git checkout -b <本地分支名> <origin/遠(yuǎn)程分支名>
  • 把當(dāng)前分支強制指向某提交節(jié)點
    git branch -f <當(dāng)前分支名> <commitId>
    例子:git branch -f master 63c7a35
    git checkout -fB <當(dāng)前分支名> <commitId>
    git checkout -fB master 63c7a35
  • 把當(dāng)前分支所有節(jié)點平移到另一個分支某個節(jié)點
    git rebase <要平移的分支節(jié)點的commitId>
  • 查看本地分支與遠(yuǎn)程分支的版本對比
    git branch -vv
  • 查看本地和遠(yuǎn)程的所有分支
    git branch -a
  • 刪除本地分支
    git branch -d <BranchName>
  • 刪除遠(yuǎn)程分支
    git push origin --delete <BranchName>
  • 當(dāng)前分支與遠(yuǎn)程某分支做關(guān)聯(lián)
    git branch -u orgin/master

Merge合并代碼

  • 把branchA 合并到master里
    git checkout master 先切換到master分支
    git merge branchA 把branchA合并過來

Cherry-pick

  • 有點類似于rebase 可以選中某幾個提交記錄
    例子:其他分支有ABCD4個提交記錄孵奶,要取D和B兩個提交merge到master上(ABCD指的是commitId):
    git checkout master 切換到master分支
    git cherry-pick D B 將D和Bmerge到mater中

Tag標(biāo)簽

  • 給某個分支打標(biāo)簽
    git tag <TAG content> <commitId>

Stash

  • 存:git stash 將當(dāng)前代碼的改保存起來 生成一個id
    git stash list 查看保存列表
  • 绕W谩:git stash pop 將最新的保存記錄恢復(fù)到工作區(qū)
    git stash pop stash@{id} 指定恢復(fù)某個記錄

【commit前要做的事情】

sourcetree官網(wǎng)入門了解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市了袁,隨后出現(xiàn)的幾起案子朗恳,更是在濱河造成了極大的恐慌,老刑警劉巖载绿,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粥诫,死亡現(xiàn)場離奇詭異,居然都是意外死亡崭庸,警方通過查閱死者的電腦和手機怀浆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怕享,“玉大人执赡,你說我怎么就攤上這事『睿” “怎么了沙合?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長跌帐。 經(jīng)常有香客問我首懈,道長,這世上最難降的妖魔是什么谨敛? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任究履,我火速辦了婚禮,結(jié)果婚禮上脸狸,老公的妹妹穿的比我還像新娘最仑。我一直安慰自己,他們只是感情好肥惭,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布盯仪。 她就那樣靜靜地躺著,像睡著了一般蜜葱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上耀石,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天牵囤,我揣著相機與錄音爸黄,去河邊找鬼。 笑死揭鳞,一個胖子當(dāng)著我的面吹牛炕贵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播野崇,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼称开,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了乓梨?” 一聲冷哼從身側(cè)響起鳖轰,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扶镀,沒想到半個月后蕴侣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡臭觉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年昆雀,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蝠筑。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡狞膘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出什乙,到底是詐尸還是另有隱情客冈,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布稳强,位于F島的核電站场仲,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏退疫。R本人自食惡果不足惜渠缕,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望褒繁。 院中可真熱鬧亦鳞,春花似錦、人聲如沸棒坏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽坝冕。三九已至徒探,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喂窟,已是汗流浹背测暗。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工央串, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人碗啄。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓质和,卻偏偏與公主長得像,于是被迫代替她去往敵國和親稚字。 傳聞我的和親對象是個殘疾皇子饲宿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353