Git 是一款源代碼管理工具(版本控制工具), 咱們寫的代碼須要使用 git 去管理。管理工具備不少 如SVN vss vcs 等 咱們學習的是 git。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 命令輸入窗口編輯器
在項目目錄中右鍵單擊,選擇Git Bash Here 後單擊打開命令窗口,輸入命令: git init 回車. 這是就會建立一個 .git 的隱藏文件夾,他裏面儲存咱們備份的文件。此時咱們就能夠在項目文件中開始寫代碼了。ide
每一次備份 都會把備份者的信息儲存起來 --global表示全局配置,即配置一次就能夠工具
配置用戶名: git config --global user.name "zhangsan" 配置郵箱: git config --global user.email "zhangsan@sina.com「」 學習
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 表示全部的修改過的文件
當咱們執行代碼 git add 的時候 把代碼放到倉庫大門口,大門口就被稱做爲暫存區。咱們的項目文件中被稱做爲工做區(不包含 .git)。當咱們執行git commit 命令時,是把文件放到倉庫的裏面,這裏面被稱爲版本庫。
當咱們了代碼後,尚未執行放到git倉庫的命令時(沒有放到倉庫大門口時,沒執行git add),咱們執行命令git status,有以下提示
當咱們了代碼後,而且將代碼放到git倉庫的大門口時(放到倉庫大門口時,執行git add可是沒實行git commit),咱們執行命令git status,有以下提示
當咱們了代碼後,而且已經將代碼徹底放到git倉庫時(已經執行過git commit -m " "),咱們執行命令git status,有以下提示
在gitignore 在這個文件中能夠設置要被忽略的文件或者目錄,忽略的文件就不會提交到 git 倉庫中。 在 .gitignore 文件中能夠書寫被忽略文件的路徑,以 / 開頭,一行寫一個路徑,這些路徑所對應的文件都會被忽略,不會被提交到倉庫。如: /.idea (.idea文件被忽略) /js (在js文件夾下的全部文件都會忽略) /js/*.js (在JS文件夾下的全部js文件都會忽略)
查看咱們提交過多少次代碼 命令: git log
經過git log --oneline 能夠查看簡介版本的日誌
回退到指定的版本 命令: git reset --hard Head~0 表示會退到上一次代碼提交的狀態, 0 表明索引
咱們還能夠經過版本號實現回退 命令: git reset --hard b42839c 表示回退到版本號爲b42839c 的那次提交的代碼,例如
若是不當心咱們關閉了 git 命令窗口 當咱們再次打開時,git log --oneline 的版本日子都被清空了 咱們沒法記住不少版本號 這時就須要 命令: git reflog 它能夠看到每一次版本切換的記錄,能夠看到全部提交的版本號:
當咱們在建立一個功能未完成時,可是有須要儲存到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)或者其餘分支
咱們能夠經過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會連同倉庫的文件夾一塊兒下載下來,通常只有在第一次從遠程倉庫下載代碼時 使用
ssh方式上傳代碼。 生成公鑰 和 私鑰,在任意目錄下打開命令窗口 命令:ssh-keygen -t rsa -C "郵箱",以下圖所示,表示祕鑰生成成功:
打開C盤 -->用戶 --> 用戶名(我這裏是LiRun)-->.ssh文件夾 --> id_rsa(私鑰) id_rsa.pub公鑰()--> 將公鑰文件用編輯器打開 -->複製裏面全部代碼(字符竄)-->回到GitHub官網單擊登陸圖標 --> 選擇setting --> 左側菜單欄選擇 SSH and GPG keys --> 單擊右側New SSH key 按鈕 --> title 名能夠隨便取 key的輸入框中將剛纔複製的字符串粘貼進去 -->點擊Add SSH key -->SSH key添加完成
和https同樣。先單擊登陸旁邊的加號 --> 選擇 new repositry,建立一個新的倉儲,-->命名,建立完成 --> 在新建的倉儲中選擇SSH而且複製其地址 --> 在命令窗口輸入 : git push [地址] master --> 上傳成功 以下圖
注意:當多人已開發時,你們都會向GitHub上傳代碼,一樣也會一塊兒衝突,須要咱們手動修改,正常狀況下咱們先從GitHub上拿到最新的數據,而後本身寫了之後,再將代碼上傳至GitHub,可是咱們修改完代碼上傳以前,別人又一次將修改的代碼上傳了GitHub,此時咱們在用git pull 拿到最新的代碼時,那麼就會形成代碼衝突,這是就須要咱們手動修改,衝突的代碼還在編輯器都顯示(別人剛剛上傳的和你本身即將要上傳的),咱們決定要留下哪個,而後把不須要的刪除,如今本地倉儲儲存,git add ./ git commit -m " ". 而後再次上傳到遠程 git push 【地址】master。
一般咱們在修改完成代碼,須要上傳服務器時,要先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
|