Git學習總結

git

Git是什么想邦? Git是目前世界上最先進的分布式版本控制系統(tǒng)(沒有之一)。
作為一個開發(fā)者委刘,git這樣的技能基本上是必備技能了丧没。以前的時候接觸了git,但沒有系統(tǒng)的學習锡移,只是簡單的了解幾個基本命令呕童。最近幾天系統(tǒng)的學習了這樣技能。由于git教程網(wǎng)上很多淆珊,我就不重復造輪子了夺饲,有的輪子要造,但有的輪子造起來沒有多大意義施符,所以只是總結一下學習的心得和git常用的命令往声。

git是什么?

  • Git是目前世界上最先進的分布式版本控制系統(tǒng)操刀,是由Linux 發(fā)明者 Linus 開發(fā)的一款新時代的版本控制系統(tǒng)烁挟。
  • 那什么是版本控制系統(tǒng)呢婴洼?
  • 網(wǎng)絡定義:版本控制(Revision control)是維護工程藍圖的標準作法骨坑,能追蹤工程藍圖從誕生一直到定案的過程。此外柬采,版本控制也是一種軟件工程技巧欢唾,借此能在軟件開發(fā)的過程中,確保由不同人所編輯的同一代碼文件案都得到同步粉捻。是一種記錄一個或若干文件內容變化礁遣,以便將來查閱特定版本修訂情況的系統(tǒng)。
  • 簡單來講肩刃,版本控制系統(tǒng)就是在開發(fā)過程中對我們的代碼進行管理的系統(tǒng)祟霍。比如:為了防止代碼的丟失,我們會把本地和服務器都放置一份或者多份盈包,這時候版本控制系統(tǒng)就可以使本地和遠程同步沸呐; 在多人協(xié)作完成一個項目時,我們需要對一份代碼進行更改和管理呢燥,這時候不影響別人工作就可以同步別人的代碼崭添;代碼出現(xiàn)bug,對代碼進行緊急的管理或者還原等等叛氨。

git的安裝

git是一個版本控制系統(tǒng)呼渣,所以我們必須下載安裝才能使用棘伴。mac系統(tǒng)是自帶Git的,為了照顧特殊情況屁置,這里也介紹一下焊夸。

  • Linux
    首先,你可以輸入git蓝角,查看一下系統(tǒng)有沒有安裝Git:
$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git

很多Linux會友好地告訴你Git沒有安裝淳地,并且會告訴你如何安裝Git。
通過一條sudo apt-get install git就可以直接完成Git的安裝帅容,非常簡單颇象。

$ sudo apt-get install git
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra package will
be installed:
 git-man liberror-perl
Suggested package: 
...
...
Setting up liberror-perl (0.17-1) ...
Setting up git-man (1:1.7.9.5-1) ...
Setting up git (1:1.7.9.5-1) ...

看到類似上面的命令則說明安裝成功。
通過命令git --version查看版本:

$ git --version
git version 2.8.1.windows.1
  • Mac OS X
    兩種安裝方式并徘。
  • 安裝homebrew遣钳,然后通過homebrew安裝Git,具體方法請參考homebrew的文檔:http://brew.sh/
  • 從AppStore安裝Xcode麦乞,Xcode集成了Git蕴茴,不過默認沒有安裝,你需要運行Xcode姐直,選擇菜單“Xcode”->“Preferences”倦淀,在彈出窗口中找到“Downloads”,選擇“Command Line Tools”声畏,點“Install”就可以完成安裝了撞叽。
  • Windows
    Windows系統(tǒng)是默認沒有安裝git,也沒有內置git安裝包的插龄。需要手動下載安裝愿棋。訪問下載git安裝包:https://git-for-windows.github.io/。下載完成后默認安裝即可(可以修改一下安裝路徑)均牢。
    安裝完成糠雨,在開始菜單里找到“Git”->“Git Bash”打開,出現(xiàn)一個類似命令行窗口的軟件徘跪,就說明Git安裝成功甘邀。

安裝完成后,還需要最后一步設置垮庐,在命令行輸入:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

Git命令總結

  • 常用操作
git init:初始化一個倉庫松邪。
git add <file>:把文件添加到倉庫。(注意:是添加到倉庫突硝,需要執(zhí)行提交操作才能把文件放到倉庫测摔。本操作實際上就是把文件修改添加到暫存區(qū))
git commit : 把文件提交到倉庫。
git status:查看工作區(qū)的狀態(tài)。
git diff:查看修改的內容
git log:查看日志
git log --pretty=oneline:查看排版的日志
git reset --hard commit_id:回退到以前的版本锋八。Git中用HEAD表示當前版本浙于,上一版本為HEAD^,上上版本為HEAD^^挟纱,假如為往上100版本羞酗,則可表示為:HEAD~100。
git reflog:查看命令歷史紊服√垂欤可用來確定要回到未來的哪個版本。
git reset HAED file:把暫存區(qū)的修改撤銷掉欺嗤,重新放回工作區(qū)参萄。
git checkout -- file:丟棄工作區(qū)的修改。git checkout其實是用版本庫里的版本替換工作區(qū)的版本煎饼,無論工作區(qū)是修改還是刪除讹挎,都可以“一鍵還原”。
git rm file:刪除一個文件吆玖。
  • 遠程操作
git remote add origin git@github.com:GitHubName/repo-name.git:關聯(lián)一個GitHub遠程庫筒溃。通用結構:git remote add origin git@server-name:path/repo-name.git。
git push -u origin master:第一次向遠程庫推送master分支的所有內容沾乘。
git push origin master:向遠程庫推送最新修改怜奖。
git pull:抓取遠程的新提交,保持本地和遠程同步翅阵。
git pull origin master:把master分支的最新狀態(tài)抓取到本地歪玲。
git remote -v:查看遠程庫信息。
git clone git@github.com:GitHubName/repo-name.git:將github項目clone到本地怎顾,被clone的項目將作為遠程庫读慎。
git checkout -b branch-name origin/branch-name:在本地創(chuàng)建和遠程分支對應的分支,名稱最好一致槐雾。
git branch --set-upstream branch-name origin/branch-name:建立本地分支和遠程分支的關聯(lián)。
git push origin <tagname>:推送某個標簽到遠程幅狮。
git push origin --tags:一次性推送全部尚未推送到遠程的本地標簽募强。
git push origin:refs/tags/<tagname>:刪除遠程標簽。(先刪除本地的標簽)
  • 分支操作
git branch:查看所有分支
git branch <name>:創(chuàng)建分支
git checkout <neme>:切換分支
git checkout -b <name>:創(chuàng)建+切換分支
git merge <name>:合并某個分支都當前分支
git branch -d <name>:刪除分支
git merge --no-ff -m "描述" <name>:記錄分支情況的合并分支方法崇摄。
  • stash操作
git stash:儲藏當前工作狀態(tài)
git stash list:查看儲藏的工作列表擎值。
git stash apply:恢復工作狀態(tài),但恢復后stash的內容并不刪除逐抑。
git stash drop:刪除最近一次stash的內容
git stash clear:清空所有的stash內容鸠儿。
git stash pop:恢復工作狀態(tài)并刪除相關stash內容。
  • 標簽操作
git tag <name>:新建一個標簽。
git tag -a <tagname> -m "描述":新建標簽并指定標簽信息进每。
git tag -s <tagname> -m "描述":PGP簽名標簽汹粤。4
git tag:查看所有標簽。
git tag -d <tagname>:刪除一個本地標簽田晚。
git push origin <tagname>:推送某個標簽到遠程嘱兼。
git push origin --tags:一次性推送全部尚未推送到遠程的本地標簽。
git push origin :refs/tags/<tagname>:刪除遠程標簽贤徒。(先刪除本地的標簽)

這只是Git常用的命令芹壕。Git極其強大,命令繁多接奈,我只是總結了一些較為常用的命令踢涌。

GitHub

  • 我們學習了 Git 之后,怎么才能充分使用這項技能呢序宦?
    答案是 GitHub斯嚎。GitHub 是世界上最大的開源社區(qū)。我相信程序員沒有不知道 GitHub 的了挨厚。學習 GitHub 同樣是程序員的必備技能堡僻。當然,Git 并不只是在 GitHub 上使用疫剃。我們在工作以后團隊之間的合作钉疫、代碼的管理基本上都是使用 Git。

  • 那么巢价,Git 與 GitHub 之間有什么聯(lián)系呢牲阁?

  • Git 是一款免費、開源的分布式版本控制系統(tǒng)壤躲。不管是學習 GitHub城菊,還是以后想從事編程行業(yè),Git都可以算是必備技能了碉克。

  • GitHub 主要提供基于Git的版本托管服務凌唬。也就是說現(xiàn)在 GitHub 上托管的所有項目代碼都是基于 Git 來進行版本控制的,所以 Git 只是 GitHub 上用來管理項目的一個工具而已漏麦,GitHub 的功能遠不止于此客税。所以建議去學習一下 GitHub。

總結

經(jīng)過兩天的系統(tǒng)學習撕贞,對Git有了初步的了解更耻。Git的功能非常強大,在本文中只是羅列出了一些常用命令捏膨。Git絕不是兩天就可以掌握的秧均,但是可以學會Git的基本使用食侮。常用的Git命令本文基本涵蓋,并且工作中常用的命令就那么十幾條目胡,掌握好這十幾條命令锯七,就基本可以得心應手的使用Git。

ikook
2016.10.15


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市炉峰,隨后出現(xiàn)的幾起案子畏妖,更是在濱河造成了極大的恐慌,老刑警劉巖疼阔,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件戒劫,死亡現(xiàn)場離奇詭異,居然都是意外死亡婆廊,警方通過查閱死者的電腦和手機迅细,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淘邻,“玉大人茵典,你說我怎么就攤上這事”鼍耍” “怎么了统阿?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長筹我。 經(jīng)常有香客問我扶平,道長,這世上最難降的妖魔是什么蔬蕊? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任结澄,我火速辦了婚禮,結果婚禮上袁串,老公的妹妹穿的比我還像新娘概而。我一直安慰自己,他們只是感情好囱修,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著王悍,像睡著了一般破镰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天鲜漩,我揣著相機與錄音源譬,去河邊找鬼。 笑死孕似,一個胖子當著我的面吹牛踩娘,可吹牛的內容都是我干的。 我是一名探鬼主播喉祭,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼养渴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了泛烙?” 一聲冷哼從身側響起理卑,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蔽氨,沒想到半個月后藐唠,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡鹉究,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年宇立,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片自赔。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡妈嘹,死狀恐怖,靈堂內的尸體忽然破棺而出匿级,到底是詐尸還是另有隱情蟋滴,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布痘绎,位于F島的核電站津函,受9級特大地震影響,放射性物質發(fā)生泄漏孤页。R本人自食惡果不足惜尔苦,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望行施。 院中可真熱鬧允坚,春花似錦、人聲如沸蛾号。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鲜结。三九已至展运,卻和暖如春活逆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拗胜。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工蔗候, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人埂软。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓锈遥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親勘畔。 傳聞我的和親對象是個殘疾皇子所灸,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,661評論 9 163
  • Git for windows 本文只是自己的一些學習總結,方便自己查看咖杂,如果對您閱讀不適庆寺,抱歉!K咦帧懦尝! 常用命令(...
    Lxs_597閱讀 337評論 0 0
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,665評論 4 54
  • 人的靈魂來自一個完美的家園壤圃,那里沒有任何污穢和丑陋陵霉,只有純凈和美麗。靈魂來到這個世界伍绳,漂泊了很久踊挠,寄居在一個軀殼里...
    斑呀嘛斑小斑閱讀 172評論 0 3
  • Swift支持函數(shù)式編程范式。程序員可以使用Swift寫出函數(shù)式風格的代碼冲杀。函數(shù)式編程是一種以數(shù)學函數(shù)為程序語言建...
    wu大維閱讀 728評論 1 6