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