面向小白:git和github的简明使用教程
什么是github
簡介
一個網站/社交平臺,可以存放代碼,有很多開源項目。
詳介
github是程序猿的代碼托管平臺,也是基于git的開源分布式版本控制系統,因此github官網上并沒有為用戶準備一個很好的代碼上傳系統。若想快速高效地將本地代碼上傳到github,需要做到以下幾點:
什么是git
一個工具,主要作用是版本控制,需要安裝到本地。安裝文件夾下會有git-bash.exe和git-cmd.exe兩個應用程序,bash在cmd的基礎上增添了一些新的命令與功能,建議直接使用bash。
git的主要作用
常用的版本控制工具
除了git這個當前最主流的版本控制工具外,還有svn、cvs等。
使用git工具
將git連接到github網站
Step1 設置貢獻者
打開git-bash,逐條輸入并回車:git config --global user.email "你的郵箱"git config --global user.name "你的用戶名" 復制代碼git config --global參數表示這臺機器上所有的Git倉庫都會使用這個配置(即相同的郵箱和用戶名),也可以對某個倉庫指定不同的用戶名和郵箱。
Step2 生成ssh
ssh是一種傳輸代碼的方法,專為遠程登錄會話和其他網絡服務提供安全性的協議,安全且快速。
1. 繼續輸入: ssh-keygen -t rsa -C "注冊郵箱"2. 一路回車,直到出現randomart image;3. 回車中途會出現:路徑選擇→提示選擇ssh-key生成路徑,直接點回車將其生成在默認路徑中即可;密碼確認→不用使用密碼進行登錄,直接回車即可。 復制代碼Step3 在github網站添加ssh
1. 找到文件夾`.ssh`(路徑為:C:\Users\用戶名\\.ssh),該文件夾下有2個文件:`id_rsa`私鑰和`id_rsa.pub`公鑰;2. 用代碼編輯器打開`id-rsa.pub`,復制所有內容;3. 登錄github網站,頭像(網頁右上角)→settings→SSH and GPG keys(網頁左邊側欄)→New SSH key(網頁右邊,頭像下邊)→title(隨便填)→Key(粘貼id-rsa.pub里的所有內容)→Add SSH key 復制代碼Step4 測試是否連接成功
在git-bash中輸入并回車:ssh -T git@github.com出現`Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.`說明已通過身份驗證,連接成功。 復制代碼在github上建立倉庫
在github上刪除倉庫
點開settings后,將頁面拉到最底部 復制代碼通過git提交代碼
一、把本地的文件上傳到倉庫中
注意
二、新建/修改本地文件并同步到遠程倉庫
git add -A 和 git add . 和 git add -u 的區別
都是提交到暫存區
- -A相當于all,提交被修改、被刪除、被新建的文件;
- . 提交被修改、被新建,不提交被刪除的文件;
- -u相當于update,提交被修改、被刪除,不提交被新建的文件。
什么是工作區、版本庫、暫存區、遠程庫?
工作區
本地文件夾叫工作區。
版本庫和暫存區
當本地文件夾同遠程倉庫關聯起來以后,會在本地文件夾內生成一個名為.git的隱藏文件夾,又稱版本庫。版本庫里有一個暫存區(stage),add命令是提交內容到暫存區的方法之一,commit是生成新版本。每次提交后用git log輸出歷史,會發現有新版本。push才是把內容發到遠程庫。
遠程庫
github上對應本地工作區的倉庫就是遠程庫。
如何查看版本號?
- 本地:在命令行里輸入 git log
- 遠程:在github上打開倉庫,有 xxcommits,點開看即可,有多少個版本號就有xx個commit
三、刪除本地文件夾/文件并同步到遠程倉庫
注意:git rm <file>和rm <file>是有區別的!rm只刪除了工作區的文件,跟git沒關系;git rm刪除了工作區和暫存區對應的文件,git rm & git commit & git push會刪除工作區、暫存區、遠程庫對應的文件,同時在歷史里會新增一個刪除文件的版本。
命令行常用命令
- mkdir 新建
- cd 打開
- cd .. 返回上級目錄,ps:cd和..之間有一個空格
- cd /d 打開d盤,ps:cd和/之間有一個空格
- pwd 顯示當前目錄
- 右鍵菜單→paste 粘貼,ps:ctrl+v無法實現粘貼
- tab鍵自動補全
- ls=list→查看文檔列表(不是git命令)
- 小提示: git ls-files可以查看暫存區的文件
- 輸入i開始編輯
- 輸入ESC退出編輯狀態
- 輸入:wq保存退出
- cat filename→catalogue輸出文件內容
- rm -v filename→因為有-v,會多輸出一行刪除記錄
常用的git命令
- git init 初始化
- git --version 查看git版本
- git status 查看git狀態,總共有9種狀態,常見到的有以下5種:
- untracked files 未被git管理的文檔
- modified 被修改了的文檔,顯示紅色表示是對工作區文件進行了修改,顯示綠色表示對暫存區文檔進行了修改
- staged 代碼在暫存區
- deleted 代碼被刪除
- both modified 多在merge/pull/rebase/revert時發生了conflict時顯示
- git log 查看歷史
- git log --pretty=oneline 查看簡寫版歷史(包括版本號和提交日志...)
- git log --graph --pretty=oneline --abbrev-commit 查看圖像版歷史
- git reflog 查看所有的版本號及相關信息
- git diff 查看差異
- 無參數的情況下,查看的是working tree和last commit之間的差異
- 有參數的情況下,如 git diff a b,a和b為版本號,查看的是a版本和b版本之間的差異
- git diff→diff的是工作區代碼的差異
- git diff --cached→diff的是暫存區代碼的差異
- git commit 提交/前進功能
- git revert 轉換/后退功能
- 用法是 git revert a ,a是一個版本號
- 會創建一個新的commit(暫稱為b)
- a和b互為相反的diff
- b僅完全diff版本a,與a和last commit(即b)之間的版本不相關
- git reset 重置/后退功能
- 用法是 git reset a ,a是一個版本號,這里假設a是上上個版本
- 執行git reset之后,git log會發現少了上個版本(即當前版本到a的下一個版本全沒有了),但是a版本還在,且文件內容是最新內容,沒有做修改
- git reset --hard HEAD^回退到上個版本
- git reset --hard HEAD^^回退到上上個版本
- git reset --hard HEAD~100 回退到前100個版本
- git branch 查看分支,會列出所有的分支,當前分支前面會添加一個星號
- git branch name 創建分支name
- git branch -d name 刪除分支name
- git checkout -- file 撤銷,丟棄工作區的修改,file是文件名
- git checkout name 切換到name分支上
- git checkout -b name 創建并切換到分支name上,等于git branch <分支名>+git checkout <分支名>
- git merge name 將指定分支name合并到當前分支上
- git remote show origin 查看遠程倉庫的詳細信息
常用遠程操作命令
- 已有本地倉庫,同步到遠程倉庫
- git push origin master
- 本地沒有倉庫,從遠程同步到本地
- git clone 遠程倉庫地址
- 本地已有倉庫,遠程倉庫有更新,從遠程倉庫同步到本地倉庫
- git pull origin master
解決沖突conflict
在實際工作中往往是多人協作,難免遇到上傳代碼發生沖突的問題。舉例說明:
av1/ \a av3\ /av2 復制代碼原始代碼是a,程序員av1 和 av2 分別在a代碼的基礎提交了代碼 av1 和av2 ,那么程序員av3在操作代碼時很可能發現代碼有沖突。假設是av1處的操作使得發生conflict,那么av1文檔的內容會發生變化:
Git資料
- Git使用詳細教程
- git使用小結一: git本地基本操作
- 圖解git
- git入門
- git初始化操作以及一些問題的解決
- git - 查看遠程倉庫信息
- git怎么添加多個遠程倉庫?
- 動畫教程
寫在后面的話
為何以慢慢掘金為名?
喜歡慢慢的生活態度,遂取名為慢慢,注冊時發現慢慢已被人捷足先占,就有了慢慢掘金。
為何錯漏百出?
是不是錯漏百出我并不確定,因為我也是小白,在自學前端的過程中要用到git和github,于是就查了相關資料并有了此文。基本上里面的知識點我都親自驗證過,但難免會有一些點是在這個環境下行得通,換一個環境就行不通了的,還請海涵。
最后
歡迎指正和交流~
轉載于:https://juejin.im/post/5a57092251882573432d13b6
總結
以上是生活随笔為你收集整理的面向小白:git和github的简明使用教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于vue2+vuex+vue-rout
- 下一篇: 【Kafka】Kafka-配置参数详解-