Git 和 GitHub 是如今團隊協(xié)作開發(fā)必不可少的技能,且不說程序員,就連很多產(chǎn)品也在學習它們。今天分享一下我自學 Git 和 GitHub 的經(jīng)驗,希望起到一個?導學?的作用,幫助大家抓住重點,節(jié)省時間、更高效地自學。
Git / GitHub 是什么?有什么用?
Git 是目前?最主流的?分布式版本控制系統(tǒng)?,版本控制系統(tǒng)可以幫你保存文件的所有修改記錄、并使用?版本號?進行區(qū)分。你可以隨時瀏覽歷史版本、將改錯的文件還原到指定的版本,還可以對比不同版本的文件差異、防止舊版本覆蓋新版本等。起到恢復和保護作用。而?分布式?是指每位開發(fā)者都能在本地維護自己的代碼和修改記錄,并且還能和其他人的記錄進行同步。
GtiHub 是主流的?代碼托管平臺?,可以理解為一個存放和管理代碼的 “網(wǎng)盤”,大家可以把自己的代碼傳上去進行共享和維護,也可以從平臺下載代碼。
注意不要把二者搞混!
Git 是工具(是抓手),而 GitHub 是平臺。兩者沒有必然的聯(lián)系,我們也可以用其他工具來向 GitHub 提交代碼,也可以用 Git 向其他平臺提交代碼。
為什么要用 Git / GitHub?
Git 從最開始就是 Linux 之父為了更好地管理 Linux 內(nèi)核開發(fā)而創(chuàng)立的。
試想一下,假如有 100 個人一起來開發(fā)大型項目,怎么才能保證大家的代碼不重復,又能共享呢?難道把代碼放到 U 盤里拷來拷去,或者口口相傳說:我今天要改這個文件,其他人都別動?
肯定不行!
所以分布式版本控制系統(tǒng)和代碼托管平臺出現(xiàn)了。大家可以把項目代碼放到代碼托管平臺上,每個人都從上面下載代碼,然后在自己的電腦改代碼、維護自己的版本,最后在發(fā)布前,把大家不同版本的代碼合到一起,再上傳到平臺就可以了,非常方便高效。
公司為了安全,一般都會有自己的代碼托管平臺。而 GitHub 呢,是?開源的?,相當于世界上所有人都是同一家公司的員工,大家都能共享這上面的代碼、免費學習和參與知名項目。
為什么要學它?
它們就是為協(xié)作開發(fā)而生的。因此,大多數(shù)公司都在用它們來管理項目。所以只要我們想找工作,就不得不學。
我之前看到一些段子說:程序員入職新公司第一天,不會 git 被開除了。也能反映出來 Git 真的很重要!
什么時候?qū)W?
記住兩個時間點就夠了:
學過至少一門編程語言后
準備開發(fā)個人項目前
這樣你就可以把之后做的所有項目都放到 Github 去管理,維護自己的項目倉庫。
Git / GitHub 學習重點和方法
我把 Git 的學習分為四個階段:
一、Git 基礎(chǔ)
本階段目標
了解 Git 基本概念和常用命令的作用(理論)
能夠使用 Git 命令來管理和提交項目代碼,要走一遍完整的流程(實踐)
學習方法
推薦《猴子都能懂的 Git 入門教程》。它是免費的,圖文并茂、通俗易懂,花 1 小時看完?入門篇?就足夠了。
在學習時,大家一定要跟著教程多敲命令 ,要自己走完從新建文件到提交文件的完整流程。以實際操作為主,而不要去背那些命令。因為其實我們是可以用開發(fā)工具或者軟件來可視化地操作 Git 的、而且哪怕忘了命令也可以查,所以死記硬背沒有意義。
分支是 Git 里很重要的概念,大家可以使用 Learning Git Branching 這個在線游戲來學習和理解分支。
猴子都能懂的 Git 入門教程:https://backlog.com/git-tutorial/cn/
Learning Git Branching:https://learngitbranching.js.org/?locale=zh_CN
二、GitHub 基礎(chǔ)
首次接觸 GitHub 時,你就把它當成一個資源網(wǎng)站,在搜索框里輸入你想搜的東西就可以了,不需要任何的教程。
但是如果我們想上傳代碼到 GitHub、和他人協(xié)作,就得好好學習一下了。
目標
熟悉 GitHub 基本操作,并能夠使用它來管理代碼
了解如何利用 GitHub 搜索和下載項目代碼
最重要的。了解 GitHub 協(xié)作流程;了解開源,并能向開源項目提交代碼
知識點
基本概念
什么是 Git(版本控制系統(tǒng))
什么是 GitHub(代碼托管平臺)
Git 和 GitHub 的作用
Git 和 GitHub 的聯(lián)系與區(qū)別
Git 概念
工作區(qū)
暫存區(qū)(索引)
本地版本庫
遠程倉庫
Git 文件狀態(tài)
版本
HEAD
分支
Git 的安裝
Git 常見配置(git config)
個人信息
修改配置
查看配置
Git 基本操作(開發(fā)流程)
初始化倉庫(git init)
克?。╣it clone)
暫存(git add)
提交(git commit)
推送(git push)
拉?。╣it fetch)
拉取合并(git pull)
查看狀態(tài)(git status)
查看歷史(git log)
分支操作
創(chuàng)建分支
查看分支
切換分支
刪除分支
合并分支(git merge)
知識點
什么是 GitHub?
如何訪問 GitHub?
基本概念
主分支
倉庫
分支
README
Star
Follow
賬戶類型(個人 / 組織)
必備操作
公開
私有
搜索倉庫 / 代碼
創(chuàng)建倉庫
Fork 倉庫
Watch 倉庫
上傳本地代碼
修改個人信息
GitHub Flow 協(xié)作流程
克隆 / Fork 倉庫
創(chuàng)建分支
修改代碼
發(fā)起 Pull Request
Code Review
Merge 分支
刪除分支
了解 GitHub Issues
貢獻代碼流程
學習方法
我認為學 GitHub 最大的難點在哪呢???
難點就是你得先能訪問 GitHub!這個我就不多說了,大家自己找方法。
剛開始直接跟著官方的 Hello World 入門教程來實操一遍提交代碼的流程就算入門了,估計用不了 20 分鐘。
之后有空的話我建議大家閱讀下 《GitHub 漫游指南》 ,這是一位大佬總結(jié)的經(jīng)驗技巧,能夠加深你對 GitHub 的認識。
還可以閱讀《開源指北》電子書來了解開源,打開新世界的大門。
Hello World 入門教程:https://docs.github.com/cn/get-started/quickstart/hello-world
《GitHub 漫游指南》:https://github.phodal.com/
開源指北:https://oschina.gitee.io/opensource-guide/
三、Git 進階
企業(yè)開發(fā)中,項目可能很大、協(xié)作人員很多,就容易出現(xiàn)代碼沖突。比如你把我寫的代碼覆蓋了,或者搞丟了一部分。
為了更好地預防和解決這些問題,成為項目管理大師呢,建議大家還是了解下 Git 進階知識。
有同學說 Git 簡單,如果只是能用它來工作的話的確不難。但是 Git 里面是有很多高級用法的,活用和會用有很大的區(qū)別。
目標
學習 Git 高級操作,尤其是能夠熟練地規(guī)避和解決沖突。
了解企業(yè)常用的 Git 協(xié)作流程、規(guī)范、項目管理方法,能獨立管理項目。
知識點
高級操作
標簽(git tag)
檢出(git checkout)
貯藏(git stash)
清理(git clean)
變基(git rebase)
重置(git reset)
還原(git revert)
檢索(git grep)
展示差異(git diff)
溯源(git blame)
參考日志(git reflog)
交互式命令行(-i 參數(shù))
預防沖突
解決沖突(重中之重)
配置 SSH
子模塊
Git 鉤子
提交鉤子(pre-commit)
忽略提交(Gitignore)
cherry-pick
分布式工作流程
Git worktree
Git Flow
Git 內(nèi)部原理
Monorepo
了解其他版本控制系統(tǒng),和 Git 對比
學習方法
怎么學呢?我建議大家直接看 Git 的官方文檔,不能再詳細了,跟著文檔敲一遍命令,有個印象就夠了。
四、GitHub 進階
如今 GitHub 的能力已經(jīng)非常強了,除了代碼的管理和檢索外,它還集成了各種輔助團隊開發(fā)和運營的功能,建議大家按需了解。
GitHub 更多功能
目標
學習更多 GitHub 功能,從而提升研發(fā)效率、更好地管理項目
嘗試用心維護和推廣自己的 GitHub 項目
知識點
開發(fā)
配置 SSH 拉取
GitHub 快捷鍵
GitHub 命令面板
GitHub Apps
代碼安全
協(xié)作
GitHub Codespaces
GitHub Discussions
Pull Requests
項目管理
Organizations 組織
GitHub Issues 問題反饋
GitHub Projects 項目管理
Insights 數(shù)據(jù)分析
貢獻者管理
開源協(xié)議
DevOps
GitHub Pages 網(wǎng)站托管
Gitpod 代碼托管
GitHub Actions
GitHub Packages
GitHub Webhook
Git 私服搭建
GitLab
Gogs
學習方法
和上一個階段一樣,進階的最好方式就是?閱讀官方文檔?!GitHub 的文檔又新又全、還有中文版、還好懂,簡直就是完美的教程,這年頭,你想找個國外的、能讓人看得懂的文檔,真心不容易。
此外,建議多看一些別人分享的 GitHub 技巧,比如我之前分享過的幾個隱藏的 GitHub 小操作,在倉庫頁面按一個?。?鍵,就能更方便地閱讀代碼了,還是很實用的。
總之想學好 Git 就要多敲多實踐,多用它來管理項目,試著跟別人一起協(xié)作開發(fā),慢慢地就熟練了。
面試考點
Git 在面試中的占比一般是很低的,至少我秋招 20 多輪面試中 1 次都沒被問到過,所以大家不用刻意去準備。
編輯:黃飛
?
評論
查看更多