git 是什么
Git是目前世界上最先進的開源的分布式版本控制系統(tǒng)。
需要安裝git
https://segmentfault.com/a/1190000011809698(安裝目錄不要在中文下)
????git config --global user.name xxx(英文用戶名)
????git config --global user.email xxxx(郵箱地址)
????git config --list 查看全局的配置
常用命令
添加查看
命令???????????????? ????????????????????????????????說明
git config --list ????????????????????????????????獲取git 的配置項
git config 配置項名 ????????????????????????獲取具體的配置名
git config 配置項名 新名字 ????????????修改配置項
git init ????????????????????????????????????????????初始化本地版本庫
git status???? ????????????????????????????????????查看倉庫狀態(tài)
git add .? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 把工作區(qū)的所有修改提交到暫存區(qū)
git add 文件路徑 ????????????????????????????把工作區(qū)指定文件提交到暫存區(qū)
git commit -m “描述”? ? ? ? ? ? ? ? ? ? ? ?把暫存區(qū)的修改提交本地版本庫(master分支)
git diff ????????????????????????????????????????????查看工作區(qū)具體修改
git diff --cached? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 查看暫存區(qū)具體修改
git pull origin master? ? ? ? ? ? ? ? ? ? ? ?遠程代碼拉取到本地工作區(qū)
git log ????????????????????????????????????????????查看歷史記錄 (記錄非常多的情況下,英文狀態(tài)下Q退出當前記錄)
git reflog ????????????????????????????????????????可以查看所有分支的所有操作記錄(包括已經(jīng)被刪除的 commit 記錄和 reset 的操作)
git commit -am “描述” ????????????????????提交工作區(qū)自上次commit之后的變化,直接到倉庫區(qū)(省略git add)
添加到本地倉庫(版本庫)
1:git init
2:git add .
3:git commit -m "描述"
4:git log
撤銷
第一種情況:撤銷工作區(qū)的修改
????????# git checkout 文件路徑
第二種情況:撤銷暫存區(qū)的修改
????????# 1. git reset 文件路徑 (把暫存區(qū)的修改撤回工作區(qū))
????????# 2. git checkout 文件路徑
第三種情況:版本回退
????????# git reset --hard HEAD^? //回退到上個版本
????????# git reset --hard HEAD^^ //上上個版本
HEAD^^^~n //回退到n個版本上
????????回退到指定版本(回到現(xiàn)在過去)
????????git reset --hard commit_id(e66aa88...)
如何獲取所有版本的commit_id呢?
針對這個需求,需要分兩種情況:
????????* 第一,git bash窗口沒有關(guān)閉,使用前面查過的commit_id
????????* 第二,git bash窗口關(guān)閉。比如,昨天做的操作,今天后悔了。 使用 git reflog
遠程倉庫操作
命令? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?說明
git clone 倉庫的地址? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 克隆一個版本庫到新的目錄 (git init 不要重復使用)
git remote add origin 倉庫的地址? ? ? ? ? ? ? ? ? ? ? ?添加遠程倉庫地址(鏈接遠程倉庫)
git push origin master ????????????????????????????????????????推送到遠程服務器
git push -u origin master ????????????????????????????????????如果當前分支與多個主機存在追蹤關(guān)系,則可以使用-u選項指定一個默認主機,這樣后面就可以不加任何參數(shù)使用git push。
git remote -v ????????????????????????????????????????????????????????查看關(guān)聯(lián)的遠程服務器名稱,在每一個后面有url
git pull origin master ????????????????????????????????????????????遠程代碼拉取到本地工作區(qū)
git pull --rebase origin master? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?拉取遠程的文件把本地的覆蓋
git pull --allow-unrelated-histories ????????????????????????拉取失敗的時候(允許不相關(guān)的歷史合并)
git remote set-url origin ssh/https地址? ? ? ? ? ? ? ? ? ssh與https互換
git 分支管理
命令 ????????????????????????????????????????????????????說明
git branch 分支名???????????????????? ????????????創(chuàng)建分支
git branch ????????????????????????????????????????????查看本地所有分支
git branch -r ????????????????????????????????????????查看遠程所有分支
git branch -a ????????????????????????????????????????查看本地和遠程所有分支
git checkout 分支名? ? ? ? ? ? ? ? ? ? ? ? ? ????切換分支
git merge 分支名? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?????合并分支
git checkout -b 分支名? ? ? ? ? ? ? ? ? ? ? ?????創(chuàng)建并切換分支
git branch -d 分支名? ? ? ? ? ? ? ? ? ? ? ? ? ?????刪除本地分支
git push origin -d 分支名? ? ? ? ? ? ? ? ? ? ? ? 刪除遠程分支
git fetch origin 遠程分支:本地分支 ????????拉取遠分支,并創(chuàng)建本地分支
git找回本地誤刪的文件
1.首先,我們先用git status 看看工作區(qū)的變化
$ git status
On branch master
deleted:? Home/View/index.html
Home/View/index.html,記住這個。
$ git reset HEAD Home/View/index.html
$ git checkout Home/View/index.html
git 中一些選項解釋
-d --delete:刪除
-D? --delete --force的快捷鍵
-f? --force:強制
-m? --move:移動或重命名
-M? --move --force的快捷鍵
-r? --remote:遠程
-a? --all:所有
gitHub 推薦使用 ssh
公鑰和秘鑰:任意位置打開 git命令窗口,輸入:ssh-keygen
一頓回車,之后會看到路徑和圖形代碼,說明成功。
命令????????????????????????????????????????????????????????????說明
pwd????????????????????????????????????????????????????????????查看工作目錄
cd [目錄位置]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?切換工作目錄
ls [選項]… [目錄或文件名]? ? ?????????????????????顯示某一個文件,或者某一個目錄旗下子目錄的屬性。
du [選項]… [目錄或文件名]????????????????????????統(tǒng)計目錄及文件的空間占用情況
命令窗口退出(英文狀態(tài)下)
:wq 強制退出當前
q 退出git log 描述