git和github使用

GIT和GITHUB

版本控制

Git是一個開源的分布式版本控制系統(tǒng),用以有效庶诡、高速的處理從很小到非常大的項目版本管理.Git 是 Linus Torvalds 為了幫助管理 Linux 內(nèi)核開發(fā)而開發(fā)的一個開放源碼的版本控制軟件秤茅。Torvalds 開始著手開發(fā) Git 是為了作為一種過渡方案來替代 BitKeeper,后者之前一直是 Linux 內(nèi)核開發(fā)人員在全球使用的主要源代碼工具性穿。開放源碼社區(qū)中的有些人覺得 BitKeeper 的許可證并不適合開放源碼社區(qū)的工作读恃,因此 Torvalds 決定著手研究許可證更為靈活的版本控制系統(tǒng)。盡管最初 Git 的開發(fā)是為了輔助 Linux 內(nèi)核開發(fā)的過程囤采,但是我們已經(jīng)發(fā)現(xiàn)在很多其他自由軟件項目中也使用了 Git述呐。例如 最近就遷移到 Git 上來了,很多 Freedesktop 的項目也遷移到了 Git 上斑唬。

什么是git

GIT
Git 是一個開源的分布式版本控制軟件,用以有效市埋、高速的處理從很小到非常大的項目版本管理。

GitHub等
GitHub恕刘、GitCafe缤谎、BitBucket和GitLab等是基于Git版本控制的遠程文件托管平臺。

使用場景:
- 無遠程:在本地 .git 文件夾內(nèi)維護歷時文件
- 有遠程:在本地 .git 文件夾內(nèi)維護歷時文件褐着,同時也將歷時文件托管在遠程倉庫

PS:
集中式:遠程服務(wù)器保存所有版本坷澡,用戶客戶端有某個版本
分布式:遠程服務(wù)器保存所有版本,用戶客戶端有所有版本

git基本使用

image

基本使用

git init // 初始化文件

git status // 查看狀態(tài)

git config --global user.name "<NAME>" // 配置用戶

git config --global user.email "<EMAiL>" // 配置郵

git add 文件名

git commit -m "提交信息"

git ls-tree head //查看版本中所有文件

git ls-files -s //查看暫存區(qū)和版本中所有文件

stash

git stash // 將當(dāng)前做過的修改含蓉,臨時保存

git stash pop // 臨時修改放回工作區(qū)(有可能出現(xiàn)沖突)

branch分支
通常情況下频敛,主分支master用于上線,dev分支用于開發(fā)馅扣。

git branch dev  // 創(chuàng)建分支branch

git branch // 查看當(dāng)前分支

git checkout dev // 切換分支

git merge bug // 合并bug分支到當(dāng)前分支

git branch -d bug // 刪除分支bug

遠程倉庫

常見的公共遠程倉庫有GitHub碼云

公司搭建的常見的有g(shù)itlab斟赚。

遠程倉庫使用流程

1.創(chuàng)建代碼倉庫

2.添加代碼倉庫
git remote add origin https://github.com/zouruncheng/s4blogs.com

3.上傳代碼
git push origin master

3.從遠程下載代碼
git clone <github倉庫地址>

4. 寫代碼

5.上傳代碼
git push origin master

錯誤:refusing to merge unrelated histories

fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef

解決

git pull --allow-unrelated-histories origin master

協(xié)同開發(fā)

協(xié)同開發(fā)的工作模式

  1. 首先,可以試圖用git push origin branch-name推送自己的修改差油;
  2. 如果推送失敗拗军,則因為遠程分支比你的本地更新,需要先用git pull試圖合并蓄喇;
  3. 如果合并有沖突发侵,則解決沖突,并在本地提交妆偏;
  4. 沒有沖突或者解決掉沖突后刃鳄,再用git push origin branch-name推送就能成功!

當(dāng)你從遠程倉庫克隆時钱骂,實際上Git自動把本地的master分支和遠程的master分支對應(yīng)起來了叔锐,并且,遠程倉庫的默認名稱是origin见秽。

要查看遠程庫的信息掌腰,用git remote

$ git remote

origin

推送分支

git push origin master // 推送主分支

git push origin dev //推送dev分支
  • master分支是主分支,因此要時刻與遠程同步张吉;
  • dev分支是開發(fā)分支齿梁,團隊所有成員都需要在上面工作,所以也需要與遠程同步;
  • bug分支只用于在本地修復(fù)bug勺择,就沒必要推到遠程了创南,除非老板要看看你每周到底修復(fù)了幾個bug;
  • feature分支是否推到遠程省核,取決于你是否和你的小伙伴合作在上面開發(fā)稿辙。

常見錯誤

error: failed to push some refs to 'git@github.com:triaquae/gitskills.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again. #提示你了,先把遠程最新的拉下來再提交你的
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

多人協(xié)作時气忠,當(dāng)2個開發(fā)者同時向遠程push代碼時邻储,后push的一方會出現(xiàn)錯誤,解決辦法也很簡單旧噪,Git已經(jīng)提示我們吨娜,先用git pull把最新的提交從origin/dev抓下來,然后淘钟,在本地合并宦赠,解決沖突米母,再推勾扭。

忽略特殊文件

在Git工作區(qū)的根目錄下創(chuàng)建一個特殊的.gitignore文件,然后把要忽略的文件名填進去铁瞒,Git就會自動忽略這些文件妙色。

不需要從頭寫.gitignore文件,GitHub已經(jīng)為我們準(zhǔn)備了各種配置文件慧耍,只需要組合一下就可以使用了燎斩。所有配置文件可以直接在線瀏覽:https://github.com/github/gitignore

忽略文件的原則是:

  1. 忽略操作系統(tǒng)自動生成的文件,比如縮略圖等蜂绎;
  2. 忽略編譯生成的中間文件、可執(zhí)行文件等笋鄙,也就是如果一個文件是通過另一個文件自動生成的师枣,那自動生成的文件就沒必要放進版本庫,比如Java編譯產(chǎn)生的.class文件萧落;
  3. 忽略你自己的帶有敏感信息的配置文件践美,比如存放口令的配置文件。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末找岖,一起剝皮案震驚了整個濱河市陨倡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌许布,老刑警劉巖兴革,帶你破解...
    沈念sama閱讀 223,207評論 6 521
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡杂曲,警方通過查閱死者的電腦和手機庶艾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,455評論 3 400
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來擎勘,“玉大人咱揍,你說我怎么就攤上這事∨锒” “怎么了煤裙?”我有些...
    開封第一講書人閱讀 170,031評論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長噪漾。 經(jīng)常有香客問我硼砰,道長,這世上最難降的妖魔是什么怪与? 我笑而不...
    開封第一講書人閱讀 60,334評論 1 300
  • 正文 為了忘掉前任夺刑,我火速辦了婚禮,結(jié)果婚禮上分别,老公的妹妹穿的比我還像新娘遍愿。我一直安慰自己,他們只是感情好耘斩,可當(dāng)我...
    茶點故事閱讀 69,322評論 6 398
  • 文/花漫 我一把揭開白布沼填。 她就那樣靜靜地躺著,像睡著了一般括授。 火紅的嫁衣襯著肌膚如雪坞笙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,895評論 1 314
  • 那天荚虚,我揣著相機與錄音薛夜,去河邊找鬼。 笑死版述,一個胖子當(dāng)著我的面吹牛梯澜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播渴析,決...
    沈念sama閱讀 41,300評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼晚伙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了俭茧?” 一聲冷哼從身側(cè)響起咆疗,我...
    開封第一講書人閱讀 40,264評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎母债,沒想到半個月后午磁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,784評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡漓踢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,870評論 3 343
  • 正文 我和宋清朗相戀三年牵署,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喧半。...
    茶點故事閱讀 40,989評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖挺据,靈堂內(nèi)的尸體忽然破棺而出取具,到底是詐尸還是另有隱情扁耐,我是刑警寧澤暇检,帶...
    沈念sama閱讀 36,649評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站婉称,受9級特大地震影響块仆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜王暗,卻給世界環(huán)境...
    茶點故事閱讀 42,331評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望俗壹。 院中可真熱鬧科汗,春花似錦绷雏、人聲如沸头滔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,814評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽坤检。三九已至,卻和暖如春期吓,著一層夾襖步出監(jiān)牢的瞬間早歇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,940評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蛀醉,地道東北人悬襟。 一個月前我還...
    沈念sama閱讀 49,452評論 3 379
  • 正文 我出身青樓拯刁,卻偏偏與公主長得像脊岳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,995評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git奶躯,從https:/...
    落魂灬閱讀 12,672評論 4 54
  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來亿驾。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 15,903評論 5 147
  • 內(nèi)容提要 本文分為兩個個部分1.Git教程2.Github教程 第一部分 1.什么是GitHub莫瞬? GitHub是...
    MachinePlay閱讀 65,410評論 5 93
  • 按照人體細胞更新的速度來看儡蔓,一個人每隔七年都會變成一個完全不同的自己疼邀,而我好像進化得稍快了一些喂江。在你缺席的這段不長...
    月之庭閱讀 138評論 0 0
  • 吃貨卡總結(jié) (上) 近一個月,前端方面獨自一人配合后臺對接接口完成了整個項目拐袜〖可以說這個項目是我首個獨立全部完成,...
    Gopherzhang閱讀 1,076評論 0 0