Git 是什么
- 分布式的版本控制系統(tǒng)
- 客戶端不并不是簡單的講文件的最新快照檢出,而是對代碼庫進行完整的鏡像.
一些概念
- 工作目錄下的每一個文件都處于以下兩種狀態(tài)之一:已跟蹤(tracked)或者未跟蹤(untracked)
2.已跟蹤文件的三種狀態(tài):
- committed : 已提交
- modified : 已修改
- staged : 已暫存
3.提交只會將緩存區(qū)的內(nèi)容提交到倉庫
常用的命令
git config
git config --global uesr.name "ccc"
git config --global uesr.email 123@163.com
global 選項的作用就是設(shè)置全局屬性,可以不帶,這樣每個項目都可以指定一個用戶名
git config --list
檢查個人設(shè)置
git status
git status # 查看已跟蹤文件的狀態(tài)
git status -s # 簡潔狀態(tài)信息
M M 前者代表修改已緩存,后者代表有修改但沒有緩存
git diff
git diff # 查看工作區(qū)與緩存區(qū)的差異
git diff --staged/--cached # 查看本次提交與上次提交的差異
git commit
git commmit -m"" # 提交
git commit -a -m""繞過 git add 直接將工作區(qū)的修改提交
git rm
git rm # 移除文件 之后要 git commit
如果一個 文件在緩存區(qū),但是我們不想 讓git 跟蹤 可以用
git rm --cached 文件名
git mv
git mv #移動 文件或者重命名
git mv README.md README
git log
git log 查看提交歷史
git log -p # 顯示每次提交引入的差異
git log -p -2 # -2顯示最近兩次的提交
git log --stat # 查看每次提交的簡要統(tǒng)計信息
git log --pretty=oneline # --pretty 更改日志輸出的morning形式 顯示一行
常用的prety: oneline ,short, full,fuller,format
git log --pretty=format:"%h - %an,%ar - %s" # 輸出自己的格式
git log --pretty=format:"" --graph # 用簡單的圖顯示git分支與合并的歷史
git log --since=2.weeks # 輸出最近兩個星期
git log --author
git commit --amend
提交之后如果忘記了之前修改的文件 可執(zhí)行下面的命令,它只會產(chǎn)生一個提交歷史
git commit --amend # 撤銷操作
git reset HEAD <filename>
撤銷已經(jīng)緩存的文件
git checkout -- <file>
放棄修改
分支
git branch <branch name>
創(chuàng)建分支
git checkout <branch name>
切換分支
git merge <要合并的分支>
合并分支
git branch -d <branch name>
刪除分支
變基
git checkout <分支名>
git rebase <保留的分支名>
git checkout <保留的分支名>
git merge <分支名>
git branch -d <分支名>