git init 初始化
將當前目錄初始化為 git 本地倉庫,此時會在本地創建一個 .git 的文件夾
git init -q
靜默執行,就是在后臺執行
git init --bare
–bare
參數,一般用來初始化一個空的目錄,作為遠程存儲倉庫
git init --template dir
–template
參數,相當于將已有的git倉庫目錄復制一份出來,生成新的倉庫,dir是原git目錄;
git init --template ../project
git init --separate-git-dir dir
相當于復制倉庫dir
目錄(可以是工作倉庫,也可以是存儲倉庫)中的.git
目錄,只復值.git
目錄
git init --separate-git-dir ../project
git log 查看當前git提交記錄
查看git提交記錄,只看提交帶本地倉庫的記錄;
git log
--oneline
簡化git日志輸出格式
$ git log --oneline
3662c32 (HEAD -> v1.0.0, origin/v1.0.0) feat: 表單已完成,等待接口完善
661dfc0 (origin/master, origin/HEAD, master) init
git remote 命令
git remote add origin url 創建遠程倉庫
在git服務器上創建一個遠程倉庫,這里以碼云為例
git remote add origin https://gitee.com/你的碼云用戶名/projectName
git remote -v 查看本地添加了哪些遠程分支的地址
$ git remote -v
origin http://git.woa.com/bkdevops-plugins/fitFmqPulsarTopicAutoDeploy.git (fetch)
origin http://git.woa.com/bkdevops-plugins/fitFmqPulsarTopicAutoDeploy.git (push)
git remote remove xxx
刪除本地指定的遠程地址
git remote remove origin
git pull origin xxx 拉取代碼
拉取指定分支的代碼,master 是分支名稱
git pull origin master
git add . 將文件保存到緩存區
你新增的文件是不可以直接提交的,必須先將文件添加到緩存區;
# 把新增的、修改的都加到緩存
git add .# 把新增、和修改的、和刪除的都加到緩存
git add -A # 添加 file文件或目錄到緩存區
git add + file
git commit -m ‘xxx’ 提交到本地倉庫
將緩存區的文件提交到本地倉庫
# 提交緩存區的所有文件到本地倉庫
git commit -m '新添加的文件內容描述' # 提交指定的文件到本地倉庫
git commit -o index.html about.html -m '我同時提交了 工作區的index.html 和 暫存區的about.html 這兩個文件'
git push origin xxx 推送到遠程倉庫
push 是將本地倉庫中的代碼推送到遠程倉庫
# 將本地倉庫的代碼推送到遠程倉庫的master分支git push origin master
git pull url 拉取遠程倉庫的代碼且與本地代碼合并
拉取指定git url的代碼,未指定分支的情況下,默認拉取master分支
git clone https://xxx.git
git拉取遠程指定分支下代碼(-b 分支名稱)
git clone -b v2.8.1 https://xxx.git
git fetch url 拉取遠程倉庫的代碼不合并,以遠程代碼為準
git fetch origin master
fetch與pull的區別
- fetch是將遠程主機的最新內容拉到本地,不進行合并
- pull 則是將遠程主機的master分支最新內容拉下來后與當前本地分支直接合并 fetch+merge
git config git配置
查看git的配置信息
# 執行后,,進入編輯狀態,按 Q 退出
git config -l
修改配置
# git配置本地倉庫的userName(必須)
git config user.name 'Lee'# git配置本地倉庫的郵箱(必須)
git config user.email '12345@qq.com'
git status
查看當前git狀態信息(查看是否有文件未提交),以下示例提示有個 index.html
的文件修改了未提交,Untracked files表示忽略的目錄或文件
$ git status
On branch v1.0.0
Your branch is up to date with 'origin/v1.0.0'.Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)modified: src/index.htmlUntracked files:(use "git add <file>..." to include in what will be committed)../.idea/no changes added to commit (use "git add" and/or "git commit -a")
git branch 查看分支
git branch -r 查看所有的遠程分支
origin/HEAD 是一個默認分支的指針,指向了master,表示origin/master就是默認分支
$ git branch -rorigin/HEAD -> origin/masterorigin/masterorigin/v1.0.0
git branch -a 查看所有的分支(包含遠程和本地)
*
表示當前選擇的分支
$ git branch -amaster
* v1.0.0remotes/origin/HEAD -> origin/masterremotes/origin/masterremotes/origin/v1.0.0
git reset --hard “HEAD^” 回退
可以用來刪除已提交到本地倉庫的版本,回退到上一個版本,切記,謹慎使用,執行多次會恢復到之前的版本,且代碼不可恢復( --hard表示全恢復 )
# 以下2種用法,linux系統使用第一種,win系統使用第二種
git reset --hard HEAD^
git reset --hard "HEAD^"
git reset --hard xxx 回退到指定的版本
回退到指定的版本,提交點:可用ID或標簽
# 回退到指定的版本號
git reset --hard 3662c32f
git reflog 查詢所有提交點
回退后需要反悔的話,需要通過此命令查找到所有操作的提交點
git reflog
.gitignore 忽略的目錄或文件
目錄下建立一個.gitignore文件(可以有多個,影響范圍當前文件及子文件),文件內可指定提交時忽略的文件和目錄,可 同時忽略多個
touch .gitignore
git rm -r --cached 刪除緩存區文件
刪除緩存區的所有文件, .
表示所有
git rm -r --cached .
刪除緩存區指定的文件
git rm -r --cached index.html
合并分支
合并分支reking和主干master,合并后的提交點屬于主干master
git checkout master
git rebase reking
git diff 統計文件改動
比較本地 v1.0.0
分支和遠程分支origin/master
的差異
$ git diff --stat v1.0.0 origin/masterbk-frontend/package.json | 5 +-bk-frontend/src/Atom.vue | 63 ++++++++++++bk-frontend/src/data/Index.vue | 187 ------------------------------------bk-frontend/src/data/LocalAtom.vue | 74 ++++++++++++++bk-frontend/src/data/PublicAtom.vue | 103 ++++++++++++++++++++bk-frontend/src/data/task.json | 49 ++++++++++bk-frontend/src/main.js | 11 +--7 files changed, 295 insertions(+), 197 deletions(-)