git 是什麼
Git是目前世界上最先進的分佈式版本控制系統。
svn 是 集中式版本控制系統。
常用命令
命令 | 說明 |
---|---|
git config --list | 獲取git 的配置項 |
git config 配置項名 | 獲取具體的配置名 |
git config 配置項名 新名字 | 修改配置項 |
git init | 初始化本地版本庫 |
git status | 查看倉庫狀態 |
git add . | 把工作區的所有修改提交到暫存區 |
git add 文件路徑 | 把工作區指定文件提交到暫存區 |
git commit -m “描述” | 把暫存區的修改提交本地版本庫(master分支) |
git diff | 查看工作區具體修改 |
git diff --cached | 查看暫存區具體修改 |
git pull origin master | 遠程代碼拉取到本地工作區 |
git log | 查看歷史記錄 (在英文狀態下Q退出當前狀態) |
git reflog | 可以查看所有分支的所有操作記錄(包括已經被刪除的 commit 記錄和 reset 的操作) |
git commit -am “描述” | 提交工作區自上次commit之後的變化,直接到倉庫區(省略git add) |
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase
撤銷
第一種情況:撤銷工作區的修改
#git checkout 文件路徑# git checkout . 所有文件
第二種情況:撤銷暫存區的修改
#1. git reset 文件路徑 (把暫存區的修改撤回工作區)
#2. git checkout 文件路徑
第三種情況:版本回退
#git reset --hard HEAD^ //回退到上個版本
#git reset --hard HEAD^^ //上上個版本
HEAD^^^~n //回退到n個版本上
回退到指定版本(回到現在過去)
git reset --hard commit_id(e66aa88…)
如何獲取所有版本的commit_id呢?針對這個需求,需要分兩種情況:
*第一,git bash窗口沒有關閉,使用前面查過的commit_id
*第二,git bash窗口關閉。比如,昨天做的操作,今天后悔了。 使用 git reflog
遠程倉庫操作
命令 | 說明 |
---|---|
git clone 倉庫的地址 | 克隆一個版本庫到新的目錄 (git init 不要重複使用) |
git remote add origin 倉庫的地址 | 添加遠程倉庫地址(鏈接遠程倉庫) |
git push origin master | 推送到遠程服務器 |
git push -u origin master | 如果當前分支與多個主機存在追蹤關係,則可以使用-u選項指定一個默認主機,這樣後面就可以不加任何參數使用git push |
git remote -v | 查看關聯的遠程服務器名稱,在每一個後面有url |
git pull origin master | 遠程代碼拉取到本地工作區 |
git pull --rebase origin master | 拉取遠程的文件把本地的覆蓋 |
git pull --allow-unrelated-histories | 拉取失敗的時候(允許不相關的歷史合併) |
git remote set-url origin ssh/https地址 | ssh與https互換 |
git 分支管理
命令 | 說明 |
---|---|
git branch 分支名 | 創建分支 |
git branch | 查看本地所有分支 |
git branch -r | 查看遠程所有分支 |
git branch -a | 查看本地和遠程所有分支 |
git checkout 分支名 | 切換分支 |
git merge 分支名 | 合併分支 |
git checkout -b 分支名 | 創建並切換分支 |
git branch -d 分支名 | 刪除本地分支 |
git push origin -d 分支名 | 刪除遠程分支 |
git fetch origin 遠程分支:本地分支 | 拉取遠分支,並創建本地分支 |
git找回本地誤刪的文件
首先,我們先用git status 看看工作區的變化
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 [選項]… [目錄或文件名] | 統計目錄及文件的空間佔用情況 |
命令窗口退出(英文狀態下)
:wq 強制退出當前
q 退出git log 描述
遇到代碼衝突須手動解決