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。
Git學習資料
廖雪峰的Git教程:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
本人就是通過廖雪峰前輩的教程學習的Git讶隐。ProGit中文版:
https://git-scm.com/book/zh/v2Git簡易指南:
http://rogerdudler.github.io/git-guide/index.zh.htmlGitHub學習資料
這里只附上 stormzhang 張哥的教程起胰。別的GitHub教程我還真沒有學習過,但是網(wǎng)上很多巫延,查一下就ok效五。
GitHub系列教程:
從0開始學習 GitHub 系列之「初識 GitHub」
從0開始學習 GitHub 系列之「加入 GitHub」
從0開始學習 GitHub 系列之「Git速成」
從0開始學習 GitHub 系列之「向GitHub 提交代碼」
從0開始學習 GitHub 系列之「Git 進階」
從0開始學習 GitHub 系列之「團隊合作利器 Branch」
從0開始學習 GitHub 系列之「如何發(fā)現(xiàn)優(yōu)秀的開源項目」
從0開始學習 GitHub 系列之「GitHub 常見的幾種操作」
ikook
2016.10.15