Usage of git
目錄
- Git 配置
- 查看配置信息
- 基本概念
- Git 創(chuàng)建倉庫
- git init
- git clone
- 撤銷操作
- 從暫存區(qū)恢復(fù)文件
- 從倉庫恢復(fù)某個(gè)文件
- 版本退回
- 版本前進(jìn)
- 分支操作
- 刪除未跟蹤的文件
- 連 untracked 的目錄也一起刪掉
- 連 gitignore 的untrack 文件/目錄也一起刪掉 (慎用,一般這個(gè)是用來刪掉編譯出來的 .o之類的文件用的)
- 在用上述 git clean 前,墻裂建議加上 -n 參數(shù)來先看看會(huì)刪掉哪些文件,防止重要文件被誤刪
- git blame
- .gitconfig
Reference
遠(yuǎn)程分支切換問題
Git 配置
Git 提供了一個(gè)叫做 git config 的工具,專門用來配置或讀取相應(yīng)的工作環(huán)境變量。
這些環(huán)境變量,決定了 Git 在各個(gè)環(huán)節(jié)的具體工作方式和行為。這些變量可以存放在以下三個(gè)不同的地方:
- /etc/gitconfig 文件:系統(tǒng)中對(duì)所有用戶都普遍適用的配置。若使用 git config 時(shí)用 --system 選項(xiàng),讀寫的就是這個(gè)文件。
- ~/.gitconfig 文件:用戶目錄下的配置文件只適用于該用戶。若使用 git config 時(shí)用 --global 選項(xiàng),讀寫的就是這個(gè)文件。
當(dāng)前項(xiàng)目的 Git 目錄中的配置文件(也就是工作目錄中的 .git/config 文件):這里的配置僅僅針對(duì)當(dāng)前項(xiàng)目有效。每一個(gè)級(jí)別的配置都會(huì)覆蓋上層的相同配置,所以 .git/config 里的配置會(huì)覆蓋 /etc/gitconfig 中的同名變量。
用戶信息
配置個(gè)人的用戶名稱和電子郵件地址:
$ git config --global user.name "runoob" $ git config --global user.email test@runoob.com如果用了 --global 選項(xiàng),那么更改的配置文件就是位于你用戶主目錄下的那個(gè),以后你所有的項(xiàng)目都會(huì)默認(rèn)使用這里配置的用戶信息。
如果要在某個(gè)特定的項(xiàng)目中使用其他名字或者電郵,只要去掉 --global 選項(xiàng)重新配置即可,新的設(shè)定保存在當(dāng)前項(xiàng)目的 .git/config 文件里。
查看配置信息
要檢查已有的配置信息,可以使用 git config --list 命令:
$ git config --list http.postbuffer=2M user.name=runoob user.email=test@runoob.com基本概念
我們先來理解下Git 工作區(qū)、暫存區(qū)和版本庫概念
工作區(qū):就是你在電腦里能看到的目錄。 暫存區(qū):英文叫stage, 或index。一般存放在 ".git目錄下" 下的index文件(.git/index)中,所以我們把暫存區(qū)有時(shí)也叫作索引(index)。 版本庫:工作區(qū)有一個(gè)隱藏目錄.git,這個(gè)不算工作區(qū),而是Git的版本庫。下面這個(gè)圖展示了工作區(qū)、版本庫中的暫存區(qū)和版本庫之間的關(guān)系:
Git 創(chuàng)建倉庫
git init
Git 使用 git init 命令來初始化一個(gè) Git 倉庫,Git 的很多命令都需要在 Git 的倉庫中運(yùn)行,所以 git init 是使用 Git 的第一個(gè)命令。
在執(zhí)行完成 git init 命令后,Git 倉庫會(huì)生成一個(gè) .git 目錄,該目錄包含了資源的所有元數(shù)據(jù),其他的項(xiàng)目目錄保持不變.
如果當(dāng)前目錄下有幾個(gè)文件想要納入版本控制,需要先用 git add 命令告訴 Git 開始對(duì)這些文件進(jìn)行跟蹤,然后提交:
git clone
我們使用 git clone 從現(xiàn)有 Git 倉庫中拷貝項(xiàng)目(類似 svn checkout)。
克隆倉庫的命令格式為:
git clone <repo> git clone <repo> <directory>參數(shù)說明:
repo:Git 倉庫。
directory:本地目錄。
比如,要克隆 ims0 代碼倉庫 root,可以用下面的命令:
執(zhí)行該命令后,會(huì)在當(dāng)前目錄下創(chuàng)建一個(gè)名為root的目錄,其中包含一個(gè) .git 的目錄,用于保存下載下來的所有版本記錄。
如果要自己定義要新建的項(xiàng)目目錄名稱,可以在上面的命令末尾指定新的名字.
撤銷操作
從暫存區(qū)恢復(fù)文件
用暫存區(qū)的文件覆蓋工作區(qū)對(duì)某個(gè)文件的修改: git checkout -- readme.md
這種情況用于readme.md 添加到暫存區(qū)后,又做了一些錯(cuò)誤的修改,想恢復(fù)到暫存區(qū)的狀態(tài)
無論readme.md 是否提交到倉庫,都是以暫存區(qū)為模板來恢復(fù)。
從倉庫恢復(fù)某個(gè)文件
加入一個(gè)工作區(qū)/暫存區(qū)/倉庫都不一樣,想要工作區(qū)恢復(fù)到和倉庫一樣
1,使用git reset HEAD 把倉庫中的指定文件恢復(fù)到暫存區(qū)
2,使用git checkout -- 把暫存區(qū)的指定文件恢復(fù)到工作區(qū)
版本退回
1,倉庫版本覆蓋整個(gè)工作區(qū) git reset --hard HEAD
2,前一個(gè)倉庫版本覆蓋整個(gè)工作區(qū) git reset --hard HEAD^
3,前兩個(gè)倉庫版本覆蓋整個(gè)工作區(qū) git reset --hard HEAD^^
4,前n個(gè)倉庫版本覆蓋整個(gè)工作區(qū) git reset --hard HEAD~n
5,根據(jù)版本號(hào)回退 git reset --hard 版本號(hào),(使用 git reflog 查看版本號(hào))
版本前進(jìn)
1, 打印log: git reflog
2, 根據(jù)id 前進(jìn)到指定版本: git reset --hard commit_id
分支操作
總結(jié)創(chuàng)建與合并分支命令如下:
查看分支:git branch
創(chuàng)建分支:git branch name
切換分支:git checkout name
創(chuàng)建+切換分支:git checkout –b name合并某分支到當(dāng)前分支:git merge name刪除分支:git branch –d name刪除未跟蹤的文件
git clean -f
連 untracked 的目錄也一起刪掉
git clean -fd
連 gitignore 的untrack 文件/目錄也一起刪掉 (慎用,一般這個(gè)是用來刪掉編譯出來的 .o之類的文件用的)
git clean -xfd
在用上述 git clean 前,墻裂建議加上 -n 參數(shù)來先看看會(huì)刪掉哪些文件,防止重要文件被誤刪
git clean -nxfd
git clean -nf
git clean -nfd
git blame
顯示指定行
git blame -L 40,60 foo
git blame -L 40,+21 foo
.gitconfig
[alias]st = statusco = checkoutbr = branchci = commitpop = stash poplast = log -1 HEADres0 = reset HEADres1 = reset HEAD^reh0 = reset --hard HEADreh1 = reset --hard HEAD^d = difftoollg = log --color --graph --pretty=format:'%Cred%h%Creset %C(bold blue)<%an>%Creset ---%C(yellow)%d%Creset %s %Cgreen(%cr)' --abbrev-commit轉(zhuǎn)載于:https://www.cnblogs.com/ims-/p/9697028.html
總結(jié)
以上是生活随笔為你收集整理的Usage of git的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA首次课堂测试总结
- 下一篇: poj 1845 Sumdiv (算数基