寫在前面
如果只解釋命令的用法的話,我想,是非常枯燥,而且沒人愿意去看,看了也學不會,學不會就用不了,用不了就.....就沒有然后了,所以,我準備模擬一個項目的建立和完整的流程,來介紹一些 git 的一些常用命令。
準備工作
還記得,上篇文章說的 GitHub 嗎?就是那個全球最大的同性交友社區(qū),不說錯了,是最大的代碼開源社區(qū)。因為Github 是一個用git做版本控制的項目托管平臺,所以沒有遠程服務器的情況下,我們學習Git的話,可以借助 GitHub 一下。
1.首先,你要有一個 GitHub 的賬號~,注冊地址GitHub
2.New repository,創(chuàng)建一個新項目倉庫,選擇 public類型,其他默認。
3.添加SSH keys,給你的 Github賬號添加SSH秘鑰對,免密碼登錄,這步可以省略,但是建議不要。
創(chuàng)建倉庫后,會得到兩個倉庫地址,兩個地址的區(qū)別是一個使用 https,另一個使用 ssh 協(xié)議。
兩個地址都可以,但是使用 https 地址上上傳和下載代碼的時候,都會讓輸入 GitHub 的代碼,太繁瑣了。這里推薦使用 ssh 協(xié)議地址,使用 ssh ,需要在你的電腦設備和 GitHub之間配置SSH秘鑰對,公鑰放在 Github 上,私鑰放在你的電腦本地上,這樣使用有私鑰的這臺電腦,操作 GitHub 就不用輸入密碼了。
第一步輸入 ssh 命令,看電腦是否安裝 ssh 協(xié)議,如果沒有,去網(wǎng)上搜索下載安裝,如果已經(jīng)安裝,會得到下面的結果
然后使用 ssh-keygen -t rsa -b 4096
命令,生成私鑰對
命令執(zhí)行完畢,會看到本地生成了兩個文件,私鑰id_rsa
和公鑰id_rsa.pub
。
將 id_rsa.pub
的內(nèi)容復制粘貼到 GitHub 中(Setting-SSH and GPG keys-New SSH key)
Git 命令一日游出發(fā)
接下來,我們會在本地電腦上創(chuàng)建一個空文件夾,在其中一個文本文件,并推送到 GitHub 上面新建的 GitStudyDemo 中,一起看看,途中會遇到哪些命令吧。
git init
本地創(chuàng)建一個空文件夾,名字什么都可以,我的叫 GitDemo,然后命令行進入到這個文件夾內(nèi),執(zhí)行 git init 命令:
執(zhí)行完畢,GitDemo 中會生成一個 .git 的隱藏文件,生成這個文件,就說明 GitDemo 已經(jīng)是個 Git 倉庫了。(Mac系統(tǒng)快捷鍵 command+option+. ,Windows 勾選顯示隱藏文件可以顯示隱藏文件)
git 對項目版本控制的所有信息,都存儲在這個 .git文件中,現(xiàn)在這部分略過,以后運用熟了會逐漸意識到。
git remote
在 GitHub 上面創(chuàng)建了遠程倉庫 GitStudyDemo ,在本地創(chuàng)建了 GitDemo 本地倉庫,現(xiàn)在我要把它們兩者連接起來,需要 git remote add 命令,將 GitStudyDemo 倉庫的遠程地址 添加到本地倉庫中。
添加成功后,使用 git remote -v 命令可以驗證一下。同時如果你有興趣對比下命令執(zhí)行前后的話,會發(fā)現(xiàn)在 .git/config 中已經(jīng)添加了遠程倉庫地址。
git status
接下來,在 GitDemo 中新建一個文件 test.txt,執(zhí)行一下 git status ,看一下會發(fā)生些什么。
提示信息說 test.txt 是Untracked file(未跟蹤文件),很清晰的建議我們執(zhí)行 git add <file>
git status 這個命令顧名思義就是查看狀態(tài),這個命令可以算是使用最頻繁的一個命令了,建議大家操作關鍵命令之前,都先查看一次,降低誤操作概率。
git add
git add 這個命令的意思是將修改的內(nèi)容添加都暫存區(qū),等待被提交。
執(zhí)行 git add 后 再次執(zhí)行了 git status 來查看倉庫的狀態(tài),以便和執(zhí)行前做對比。
提示信息發(fā)生了變化,提示Changes to be committed,也可以使用
git rm --cached 退出暫存區(qū)。這里我選擇去提交
git commit
git commmit -m <your commit message>, 這個命令的意思是,將暫存區(qū)的內(nèi)容,設置一個提交的信息,然后添加到提交歷史內(nèi)容區(qū)中,等待被推送到遠程倉庫。
提交完執(zhí)行 git status ,顯示工作區(qū)沒有文件需要提交。
git push & git pull
現(xiàn)在我們要開始把本地的倉庫 GitDemo 推送到遠程倉庫 GitStudyDemo了,使用的命令是 git push 。
這里注意,因為我們是第一次創(chuàng)建,遠程倉庫中什么都沒有,所以直接 push 就可以了,但是真實的項目開發(fā)中,push 之前都要先操作一下 git pull 動作,把遠程倉庫中的內(nèi)容拉取下來,再操作 git push。
git branch
分支,是 Git 的核心特色,在團隊合作的時候,發(fā)揮的尤其出色。一個開發(fā)者一個分支,然后在留一個主分支做樹干,每個開發(fā)者完成之后,將自己分支的內(nèi)容匯聚到主分支上。關于分支有很多種玩法,接下來開始稍微體驗一下。
首先查看一下當前項目有多少個分支:
git branch 查看本地分支,加上 -a 參數(shù)可以查看項目所有分支,包括遠程分支。 分支名稱前 *
表示是當前分支。
然后創(chuàng)建一個分支:
git checkout
創(chuàng)建完分支后,切換分支,使用的命令是 git checkout ,注意執(zhí)行后 *
號 跑到 test 分支前面了。
git merge
然后我們在當前分支中在 test.txt 中添加一句話 'Hello Git !' ,然后執(zhí)行 git add &git commit .
再使用 git checkout 切換回 master 分支。查看test.txt,發(fā)現(xiàn)沒有'Hello Git !' 中的內(nèi)容。再切換回 test 分支中,查看test.txt,發(fā)現(xiàn)有'Hello Git !',是不是很神奇?
分支用起來就是這么好玩,如果想讓 master 中的test.txt 中也有這句話的話,可以選擇合并 test 分支。
一日游結束,今天解散,明天見
上面基本是日常的工作中,出現(xiàn)頻率非常高的 git 命令,但這不是全部,因為還有很多很多好用好玩的,在下面幾篇文章中,等待著我們,下篇文章見~