1. git是什麼
Git 是一款源代碼管理工具(版本控制工具), 咱們寫的代碼須要使用 git 去管理。管理工具備不少 如SVN vss vcs 等 咱們學習的是 git。git
2.git 的安裝
2.1 前往git官網下載git軟件 網址:https://git-scm.com/download/win github
2.2 直接雙擊安裝便可。點擊下一步,不修改任何設置 ,知道安裝開始 ,就自動安裝服務器
2.3 安裝完成以後,在桌面任意位置右鍵單擊,看到git 的圖標(以下圖),證實git 安裝成功。 ssh
2.4 Git GUI Here 是git 的圖形化操做界面 Git Bash Here 是git 命令輸入窗口編輯器
3. git 的使用
3.1初始化 Git 倉庫(這個倉庫存放的是咱們的項目代碼進行備份的文件)
在項目目錄中右鍵單擊,選擇Git Bash Here 後單擊打開命令窗口,輸入命令: git init 回車. 這是就會建立一個 .git 的隱藏文件夾,他裏面儲存咱們備份的文件。此時咱們就能夠在項目文件中開始寫代碼了。ide
3.2配置使用者的用戶名和郵箱(配置我的信息)
每一次備份 都會把備份者的信息儲存起來 --global表示全局配置,即配置一次就能夠工具
配置用戶名: git config --global user.name "zhangsan" 配置郵箱: git config --global user.email "zhangsan@sina.com「」 學習
3.3把代碼儲存到 git 倉庫中
3.3.1 先把代碼放到倉庫的大門口 命令: git add 「文件的路徑」 例如:git add "./readme.md 意思是把當前目錄下的 readme.md 文件放到git 倉庫的大門口idea
3.3.2 把大門口文件放到倉庫的裏面 命令: git commit -m "這是咱們完成的第一個功能」 , git commit 就是無論咱們倉庫門口有多少文件,此時會所有都將門口的文件放到倉庫裏面, -m 的做用是對這次放入到倉庫代碼的一個說明,m 是message 的意思,後面的說明內容須要用引號包裹。當出現以下圖片的提示,說明咱們的文件已經成功放到git 倉庫。spa
3.3.3 當咱們項目中有多個文件修改時,須要儲存到git 倉庫, 咱們可使用 git add ./ 來提交到倉庫大門口(暫存區) ./ 表示項目文件夾下全部修改過的文件和新建的文件。例:
3.3.4 咱們每次都要執行 git add 文件路徑 比較繁瑣 這時 咱們只須要執行 git commit --all -m "這是一次性把代碼放到倉庫中(版本庫)", all 表示全部的修改過的文件
3.4 工做區、暫存區、版本庫的概念
當咱們執行代碼 git add 的時候 把代碼放到倉庫大門口,大門口就被稱做爲暫存區。咱們的項目文件中被稱做爲工做區(不包含 .git)。當咱們執行git commit 命令時,是把文件放到倉庫的裏面,這裏面被稱爲版本庫。
3.5 git status 命令查看狀態 (查看咱們的代碼是否放到了git 倉庫中)
當咱們了代碼後,尚未執行放到git倉庫的命令時(沒有放到倉庫大門口時,沒執行git add),咱們執行命令git status,有以下提示
當咱們了代碼後,而且將代碼放到git倉庫的大門口時(放到倉庫大門口時,執行git add可是沒實行git commit),咱們執行命令git status,有以下提示
當咱們了代碼後,而且已經將代碼徹底放到git倉庫時(已經執行過git commit -m " "),咱們執行命令git status,有以下提示
3.6 gitignore 設置忽略文件
在gitignore 在這個文件中能夠設置要被忽略的文件或者目錄,忽略的文件就不會提交到 git 倉庫中。 在 .gitignore 文件中能夠書寫被忽略文件的路徑,以 / 開頭,一行寫一個路徑,這些路徑所對應的文件都會被忽略,不會被提交到倉庫。如: /.idea (.idea文件被忽略) /js (在js文件夾下的全部文件都會忽略) /js/*.js (在JS文件夾下的全部js文件都會忽略)
3.7 git 日誌查看
查看咱們提交過多少次代碼 命令: git log
經過git log --oneline 能夠查看簡介版本的日誌
3.8 git 版本回退、 git reflog 查看版本操做記錄
回退到指定的版本 命令: git reset --hard Head~0 表示會退到上一次代碼提交的狀態, 0 表明索引
咱們還能夠經過版本號實現回退 命令: git reset --hard b42839c 表示回退到版本號爲b42839c 的那次提交的代碼,例如
若是不當心咱們關閉了 git 命令窗口 當咱們再次打開時,git log --oneline 的版本日子都被清空了 咱們沒法記住不少版本號 這時就須要 命令: git reflog 它能夠看到每一次版本切換的記錄,能夠看到全部提交的版本號:
3.9 git 建立分支, 查看/切換/合併 分支的操做
當咱們在建立一個功能未完成時,可是有須要儲存到git倉庫時,咱們能夠本身建立一個分支(只有本身可使用),命令: git branch dev(或者是 git checkout -b dev) 意思是咱們建立了一個叫dev 的分支。在剛建立時 dev分支裏面的東西(咱們提交的代碼)和 master 分支裏面的東西是同樣的。
查看分支: 經過命令: git branch 這是會顯示咱們建立的分支和主枝幹(master) ,那個前面帶有 星號※,表示是咱們當前正處於的那個枝幹,如圖:
切換分支: 命令 git checkout 分支名 例如:git checkout dev (切換到dev分支) git checkout master (切換到master主分支)。
注意:若是咱們的功能未完成就須要提交到git倉庫時,咱們必須先切換到本身建立的分支,而後再執行 git add 文件路徑 去提交,這樣才能提交到本身建立的分支上
合併分支: 命令: git merge dev 此命令是在master分之下執行 表示把 dev 分支合併到 master上。在別的分支下也可執行,表示 git branch 命令輸出的前面帶有 * 的分支與merge後面跟的分支合併。
注意: 若是咱們想把分支提交的代碼合併到主分支(master)上面,供你們一塊兒使用,則須要先將分支經過 git checkout mater 切換到主分支上,而後經過git add ./.....再提交代碼
刪除分支: git branch -d 要刪除的分支的名稱 例如: git branch -d dev (刪除的dev 分支) 注意: 該命令不能將要刪除的分支下執行,如咱們要刪除dev分支,則不能再dev分支下執行該命令,須要切換到主分支(master)或者其餘分支
若是咱們在分支和主分支(master)同時作了修改,而後將分支合併到主分支(master)上時,就會出現衝突,如此下圖。咱們能夠手動處理,如圖
3.10 經過 git push 命令,把本地代碼推送到服務器上
咱們能夠經過git 把代碼上傳到 gitHub 的服務器上 ,別人能夠隨時經過命令去下載。 GitHub網址: https://github.com/ (當作github服務器來用)
建立GitHub倉儲: 進入GitHub官網 註冊登錄後,點擊右上角的加號,選擇第一項 new repository (建立倉儲)。
在命令窗口運行: git push 【地址】 master 這樣就會把當前的分支長傳到遠程的 master 分支
示例: git push https://github.com/loverainbowBei/gitDemo.git master
成功上傳到GitHub 服務器的樣式 以下圖:
從遠程服務器拿代碼(方法1 git pull 【地址】master): 當咱們須要從GitHub遠程服務器上把別人的代碼拿過來本身用時,須要用到 命令: git pull 【地址】master 這裏不必定是master 只是master狀況較多,這樣就把遠程的數據獲得了(注意: 拿遠程數據時,須要如今本地建立一個倉儲),屢次執行,數據會合並,不會覆蓋
從遠程服務器拿代碼(方法2 git clone 【地址】): 會獲得遠程倉庫相同的數據,屢次執行會覆蓋本地內容,clone會連同倉庫的文件夾一塊兒下載下來,通常只有在第一次從遠程倉庫下載代碼時 使用
3.11 經過ssh 方式上傳代碼
ssh方式上傳代碼。 生成公鑰 和 私鑰,在任意目錄下打開命令窗口 命令:ssh-keygen -t rsa -C "郵箱",以下圖所示,表示祕鑰生成成功:
給GitHub配置ssh 公鑰。
打開C盤 -->用戶 --> 用戶名(我這裏是LiRun)-->.ssh文件夾 --> id_rsa(私鑰) id_rsa.pub公鑰()--> 將公鑰文件用編輯器打開 -->複製裏面全部代碼(字符竄)-->回到GitHub官網單擊登陸圖標 --> 選擇setting --> 左側菜單欄選擇 SSH and GPG keys --> 單擊右側New SSH key 按鈕 --> title 名能夠隨便取 key的輸入框中將剛纔複製的字符串粘貼進去 -->點擊Add SSH key -->SSH key添加完成
把咱們的代碼上傳到遠程服務器,經過ssh方式
和https同樣。先單擊登陸旁邊的加號 --> 選擇 new repositry,建立一個新的倉儲,-->命名,建立完成 --> 在新建的倉儲中選擇SSH而且複製其地址 --> 在命令窗口輸入 : git push [地址] master --> 上傳成功 以下圖
注意:當多人已開發時,你們都會向GitHub上傳代碼,一樣也會一塊兒衝突,須要咱們手動修改,正常狀況下咱們先從GitHub上拿到最新的數據,而後本身寫了之後,再將代碼上傳至GitHub,可是咱們修改完代碼上傳以前,別人又一次將修改的代碼上傳了GitHub,此時咱們在用git pull 拿到最新的代碼時,那麼就會形成代碼衝突,這是就須要咱們手動修改,衝突的代碼還在編輯器都顯示(別人剛剛上傳的和你本身即將要上傳的),咱們決定要留下哪個,而後把不須要的刪除,如今本地倉儲儲存,git add ./ git commit -m " ". 而後再次上傳到遠程 git push 【地址】master。
一般咱們在修改完成代碼,須要上傳服務器時,要先pull,又由於若是服務器的版本和本地的版本不一樣,咱們能夠先把衝突解決,而後把最新的版本上傳(push)至服務器
3.12 pull 和 push 的簡寫
用一個變量代替服務器地址, 命令 git remote add 變量名 【地址】 例如: git remote add origin git@github.com:loverainbowBei/sshDemo.git
那麼。咱們再pull 或者 push 是 ,就能夠寫簡寫爲 git pull/push origin master 便可
咱們使用這個命令 git pull / push origin -u master 執行一次時。下一次再 pull 或者 push 時 就能夠直接寫 git pull 或者 git push 。由於加上 -u 執行一次以後,git 會把當前分支與遠程指定的分支進行關聯,他就至關於 git pull / push origin master
0f1db23
|