1.git的安裝
去網(wǎng)站下載git,一路回車安裝融涣,安裝好后點擊鼠標右鍵會有Git bash here ,點擊Git bash here命令行輸入git --version會有git的版本信息童番。
2.git版本管理的基本操作
git ?init 建立本地git repository倉庫并對文件進行追蹤用
git ?status ?查看狀態(tài)
git ?add . / git ?add -A ?這兩個命令是全部添加到暫存區(qū),也可以添加指定文件到暫存區(qū) git add index.html
git ?commit ?-m"對這次提交的描述" ? ,這樣就將修改提交到本地的 repository倉庫中, 描述就是為了方便后期再次查看時好理解
git remote add origin? https://github.com/***/ch1701.git ? ?把本地的倉庫和gitHub倉庫想關聯(lián)
git ? pull ?origin ?master ? ? ? ?從gitHub倉庫的master分支拉取代碼到本地
git? pull origin master? ? ??--allow-unrelated-histories? ? ? ? ?//強制拉取線上到本地合并()
git ?push ?-u ?origin ?master ? ? 提交到gitHub倉庫的master分支威鹿,第一次的時候需要 -u 參數(shù)剃斧,后面再提交就不需要 -u 了
git ?push ?-u ?origin ?master? -f? ? ? //強制把本地推到線上覆蓋(當回退線上倉庫時會用到)
git? cat? help.txt ? ? ? ? 查看內(nèi)容
git ?rm ? help.txt ? ? ? ? 刪除help.txt文件
reset ? ?清屏,實質(zhì)是清除屏幕記錄忽你; ctrl ?+ ?l ?也是清屏幼东,實質(zhì)是把記錄上移,以確保當前顯示框干凈
git? diff? ?help.text? 查看當前版本與上個版本的不同
git? config? user.name? ? ? ? ? 查看當前用戶名
git? ?config? ?user.email? ? ? ? 查看當前郵箱
npm? ?cache? ?clean? ?--force? ? ? ?清除緩存
git? rm? -r? --cached .? ?? 清除git緩存
git? config? ?--global? ?core.ignorecase? ?false? ? ? ?設置git區(qū)分大小寫
至于上文中的gitHub倉庫的來源科雳,直接去github網(wǎng)站上注冊一個賬號根蟹,點右上角加號new repository,然后取個名字回車就好了
3.分支操作
創(chuàng)建本地分支: ?git ?branch ?aaa ? ?,這里aaa為新建的分支名字
創(chuàng)建分支并切換到新分支: ?git? checkout? ?-b? ?aaa ? ?,這里aaa為新建的分支名字
查看本地分支:git ?branch ? ? ? ? ?不給參數(shù)默認本地分支
合并分支:? ?git? ?merge? ?aaa? ? ? (想把aaa分支合并到master分支糟秘,要先切換到master分支再執(zhí)行合并操作)
放棄分支合并:? ?git? ?merge? ?–abord? ? aaa
查看遠程分支:git? branch? -r? ? ? ,r代表remote即遠程分支
查看所有分支:git? branch? -a ? ? ?,a代表all即所有分支
切換分支:git ?checkout ? aaa ? ,從master分支切換到aaa分支? ? ? (切換分支前確保當前分支的修改都已提交)
創(chuàng)建遠程分支 / 推送新分支放到遠程:git ?push ?origin ?aaa ? ? ,會自動 在遠程添加aaa分支
刪除本地分支:git ?branch? -d ? aaa ? ?刪除aaa分支前確保切換到非aaa分支上再執(zhí)行此命令
刪除遠程分支:git? push? origin? :aaa? (origin 后面有空格)
刪除遠程分支:? $ git? push? origin? --delete? aaa
當頁面內(nèi)容很多時富俄,可以用按 f 鍵下一頁北戏,按 b 鍵上一頁桃焕,:wq是退出當前
4.查看提交記錄操作
git ?log ? ?查看詳細提交日志契沫,按f鍵想下翻頁,按b鍵向上翻頁吼畏,按q退出
git ?log ?--oneline ? ? 顯示只有一行的簡單提交日志
git? log? --oneline ? -6 ? ? 顯示最近的6條提交日志
git? log? --oneline? --author="hu" ? ?顯示指定作者的提交日志
git? log? --oneline? --grep="index.html"? ? 顯示index.html的提交日志
git? log? --oneline? --before='2017-07-20'? ? 顯示2017-07-20日期之前(包含這一天)的提交日志
git? log? --oneline? --before='3 days'? ? 顯示最近3天的提交日志
git? log? --oneline? --before='1 weeks'? ? 顯示最近1周的提交日志
git? log? --oneline ?--graph ? ? 顯示帶圖形效果的提交日志
當回滾督赤、回退后會看不到當前版本后的提交記錄,這時可以執(zhí)行 git ?reflog 這個命令會記錄每一次操作記錄? ?
5.checkout操作 (回退版本方法一)
對于在工作區(qū)(未加入暫存區(qū))的修改泻蚊,想要放棄修改使用這個方法:
git checkout . ?撤銷對所有已修改但未放入暫存區(qū)的文件的修改躲舌,但不包括新增的文件
git ?checkout ?-- . ? ?同上
git checkout ?[filename] ? ?撤銷對指定文件的修改,[filename]為文件名
git ?checkout ?-- ?[filename] ? ? 同上
對于已經(jīng)git ?add 加入暫存區(qū)的文件想要放棄修改的話需要這樣操作:
? ? git? reset? HEAD? index.html? ? 可以把暫存區(qū)的修改撤銷掉性雄,重新放回工作區(qū),然后就回到上面的那個方法了
對于已經(jīng)commit 的文件,如果想要回退就要使用以下這個方法:
? ? 先git ?log ?--oneline ?查看提交信息
? ? git? checkout? a9db330? ? 會回退到測試2的提交没卸,并創(chuàng)建一個臨時分支放測試2節(jié)點的代碼,此時輸入git? branch? 可以看到分支在臨時分支上秒旋,本地代碼也變回測試2的约计。如果又想回到最近的那次提交只需要切換回主分支master就好了,執(zhí)行git ?checkout ?master 迁筛,本地代碼會變回最新的提交版本測試4的狀態(tài)煤蚌,同時臨時分支會消失。如果想保存測試2那個分支,那就在切換master分之前新建一個分支執(zhí)行git ?checkout ?-b ? aaa尉桩,再執(zhí)行git ?branch會發(fā)現(xiàn)臨時分支也不見了筒占,只有master和aaa,其中master是最新測試的狀態(tài),aaa就是測試2的狀態(tài)蜘犁。如下圖:
注意: ?
這里需要注意一點这橙,當回退到測試版本2后奏窑,測試版本2后的提交記錄都會不見的,我們就不能通過git? log找到測試版本4的commit_id了屈扎,我們可以用 git? reflog查看每一次操作的記錄找到測試版本4的commit_id 良哲。想要回到最近的一次提交測試4只需要切換到master分支就好了,如下圖助隧。
6.reset操作 (回退版本方法二)
先git? log? --oneline? 查看提交信息
執(zhí)行git? reset? --hard ?HEAD^ ? ?會回退到最近的提交版本的前一個版本(3065b27)
執(zhí)行git? reset? --hard? HEAD^? ? 會回退到最近的提交版本的前兩個版本(3065b27)
執(zhí)行git? reset? --hard? HEAD~20 ??會回退到最近的提交版本的前20個版本
也可以根據(jù)提交的commit_id來回退:
執(zhí)行 git ? reset ?--hard ?a9db330 ? ?, ?a9db330是通過git ?log查看到的額測試2提交的commit_id
這里需要注意的是:執(zhí)行此方法后不會像checkout那樣新建一個臨時分支,而是直接把本地的代碼會退到指定的版本滑沧,如果回退完后又想返回最新版本并村,執(zhí)行 git? reset? --hard? commit_id4, 這里的commit_id4是最新提交版本的id, 可以在回退之前截個圖保存下來滓技,或者通過?git? reflog 查看哩牍。當回退到測試版本2后,測試版本2后的提交記錄都會不見的令漂,我們就不能通過git? log找到測試版本4的commit_id了膝昆,這時候又想回到測試提交4的版本怎么辦,我們就可以用 git? reflog查看每一次操作的記錄找到測試版本4的commit_id4然后再 git? reset? --hard? commit_id4 就又回到最新的提交版本
7.remote操作
git? remote? 查看遠程分支(沒有改動的話默認是master)
git ?remote ?-v ? ?查看git遠程倉庫地址
修改遠程倉庫地址:
? 1.修改命令
? ? ? git ?remote? ?set-url? ? origin? ? [url]
? 2.先刪后加
? ? ? git remote rm origin
? ? ? git remote add origin [url]
8.clone 克隆
把git倉庫的代碼克隆到本地叠必,只需要執(zhí)行 ? ?
git? clone ? https://github.com/×××.git ? ? ?這樣會在當前目錄下建立一個跟git倉庫同名的文件夾荚孵,文件夾里是代碼
git? clone? https://github.com/×××.git? ? test ? ?,這樣會在當前目錄下新建一個test文件夾用來放git遠程代碼 ?
9.gitignore 忽略
在我們使用github提交本地代碼時纬朝,有些庫文件和日志文件是不必要提交的收叶,這個時候我們就會用到.gitignore文件了。
首先,.gitignore文件應該是創(chuàng)建在你的項目的根目錄下面的共苛,執(zhí)行命令創(chuàng)建 .gitignore文件,也可以直接在文件管理中去創(chuàng)建
vim .gitignore
或者? ? touch? .gitignore
添加忽略的目錄和文件:
node_modules/? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//該文件下所有文件
dist/
.project? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//所有以.project結(jié)尾的文件
*.log? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??//所有以.project結(jié)尾的文件
判没!aaa.log? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //不過濾aaa.log文件,該文件會被提交到線上倉庫
platforms/
plugins/
這些文件都是庫文件以及自動生成的模塊隅茎,都是不必要提交的澄峰。
對于已經(jīng)提交,現(xiàn)在又不想提交的文件(不想讓它出現(xiàn)在遠程版本庫里)辟犀,應該這樣操作:
? ? ?去項目根目錄下創(chuàng)建.gitignore文件俏竞,并且添加需要忽略提交的文件(方法同上),然后執(zhí)行
git? rm? -r? --cached? node_modules ? ? ? ? ? ? ? ? ? ?(node_modules為要刪除的文件名)
? ? ? 然后再 push 到遠程,這時去github的庫里去就會發(fā)現(xiàn)剛剛刪除的東西不見了
如果gitignore不生效胞此,執(zhí)行以下代碼清理git緩存
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
10.git bash here窗口與cmd窗口的基本命令(windows)
以上都是我平時遇到的臣咖,我總結(jié)了一下寫了出來,方便大家查看漱牵。這只是一部分夺蛇,還有很多等我想起來了再往上添加。
文中如果有寫錯或不對的地方懇請您留言指出批評酣胀,如果此文對你有幫助刁赦,請加關注收藏點贊。