git 命令
安裝git後我們需要配置一下,告訴git我們的基本信息等等..一般在用戶範圍內去配置 git ,也就是在 global 範圍。
-
global
全局設置$ git config --global user.name ‘xxxx‘ $ git config --global user.email ‘xxxx‘
同時我們可以用
$ git config --list
來查看我們的設置,
如果需要修改重新設置使用$ git config --unset --global user.name
全局範圍的配置會保存在當前用戶的主目錄下面 叫.gitconfig 的文件裏面。我們可以使用
cat ~/.gitconfig
$ cat ~/.gitconfig
設置別名-alias
通過別名可以簡化經常輸入的內容,別名的配置也可以在gitconfig裏面查看
git config --global alias.cm commit
這樣當你在commit 的時候 就可以 使用
git cm -m ‘xx‘
來代替了。 -
全局忽略文件
有時候我們需要去忽略系統生成的文件比如mac 下的.DS_Store,我們可以在全局設置
gitignore
git config --global core.excludesfile ~/.gitignore_global
然後在gitignore文件裏面寫入需要忽略的文件
.DS_Store
你可以參考下面的鏈接來看更多要忽略的文件
https://gist.github.com/octocat/9257657如果在項目中可以創建名為
.gitignore
,為每個項目配置。具體忽略的文件可以查看上面的鏈接如果你想忽略掉已經跟蹤的文件,可以使用
git rm cached
選項,再指定一下文件名稱,這樣可以取消跟蹤指定的文件。
Git 基礎命令
-
初始化Git
控制和管理項目需要初始化git
$ git init
-
查看當前修改 -git status
$ git status
-
查看提交的信息 -git log
$ git log $ git log --oneline //顯示在一行 $ git log --oneline --before = ‘2017-01-01‘ //顯示2017-01-01的提交
你可以使用git help log
查看更多信息
-
提交 -git commit
添加新的文件,或者修改已有的文件,之後使用commit告訴 git 你做了哪些事情。可以使用git log 查看以往的提交。
$ git commit -m ‘這裏來描述事情‘
-
對比差異 -git diff
如果你修改了文件,你想查看自己目前修改的了哪些,可以使用
$ git diff
如果想跟暫存區裏面的文件進行對比(暫存區就是git add 文件),可以用
$ git diff --staged
-
重命名,移動 -git mv
git mv可以重命名或者移動文件和目錄
$ git mv xx1.js xx2.js //重命名 $ git mv xx1.js js/ //移動文件 $ git mv js asset/ //移動目錄
-
刪除文件 -git rm
$ git rm fileName
如果你想刪除暫存區的可以使用
$ git rm --cached fileName
-
撤銷操作 -git amend
如果提交commit之後發現有遺漏的文件可以使用該命令,具體流程
$ git conmmit -m "xxx.js" $ git add "xxx2.js" $ git commit --amend --no-edit
上面的三條命令最終只是產生一個提交,第二個提交命令修正了第一個的提交內容。提交之後你就可以使用git log --name-status
提交了哪些文件
-
修改撤銷文件 -git checkout
比如你刪除了index.html,使用以下命令恢復文件,也可以恢復之前修改過的
$ git checkout -- index.html
-
撤銷已經add的文件 -git reset
有時我們會不小心git add,取消某些add的文件。(還原暫存區)
$ git reset HEAD fileName
-
撤銷已經commit的文件 -git reset
假如你的項目已經commit了,可以用到該命令恢復到指定的commit。
第一步git log --oneline
5c422a3 add html 6804500 Delete a.css
第二步
$ git reset id //id 是指上面commit 的id
第二種方法,更快捷的
$ git reset HEAD^ // 回退到上一個commit, 默認--mixed
git reset 有3個選項,
--soft
不會影響到工作目錄還有暫存區裏的東西--hard
工作目錄,暫存區直接重置到指定的提交狀態--mixed
默認選項,會把暫存區裏的東西重置到指定提交狀態,並且指針指向這個提交。一般情況, 如果你發現commit文件是存在bug情況,你只需要修改文件代碼,那就用默認的mixed,hard會重置文件的內容到指定的commit,也就是說你的之前寫的代碼會被重置刪除掉,切記。
git reset [--soft | --mixed | --hard] [-q] [<commit>]
-
保存修改恢復進度文件 -git stash
stath 可以讓工作進度先保存起來,需要用到的時候在恢復。
場景: 你修改文件app.js ,然後你git add file後你暫時不想跟後面的文件一起commit,那麽就可以先儲存起來$ git stash save "這裏可以是說明"
查看保存的進度,或者顯示進度的目錄
$ git stash list $ git stash show -p stash@{..}
恢復進度(取出之前保存的進度)
$ git stash apply stash@{..}
刪除不需要的進度
$ git stash drop 或者 後面跟上stash@{..}代號
分支branch
Git 分支 - 何謂分支
-
查看,創建項目分支
$ git branch $ git checkout -b [name_new_branch]
-
刪除分支
$ git branch -d [name_branch]
-
切換分支
$ git checkout [branch-name]
-
對比分區的區別
$ git checkout branch
-
分區合並
$ git merge [your_branch]
註意:如果你合並master ,首先需要切換到master 分支下進行合並。
-
分區對比
$ git diff [branch]..[branch]
-
重命名branch
$ git branch -m [branch] [new_name_branch]
遠程 remote
-
添加遠程地址
$ git remote add origin [git_address]
-
分支推送到遠程的版本
$ git push origin master
具體很多細節去多看看深入的實戰
git log 命令支持選項參考這裏
選項 | 說明 |
---|---|
-p | 按補丁格式顯示每個更新之間的差異 |
--word-diff | 按 word diff 格式顯示差異。 |
--stat | 顯示每次更新的文件修改統計信息。 |
--shortstat | 只顯示 --stat 中最後的行數修改添加移除統計。 |
--name-only | 僅在提交信息後顯示已修改的文件清單。 |
--name-status | 顯示新增、修改、刪除的文件清單。 |
--abbrev-commit | 僅顯示 SHA-1 的前幾個字符,而非所有的 40 個字符。 |
--graph | 顯示 ASCII 圖形表示的分支合並歷史。 |
--relative-date | 使用較短的相對時間顯示(比如,“2 weeks ago”)。 |
--pretty | 使用其他格式顯示歷史提交信息。可用的選項包括 oneline,short,full,fuller 和 format(後跟指定格式)。 |
--oneline | --pretty=oneline --abbrev-commit 的簡化用法。 |
git 命令