通宵總結!值得你收藏的Git命令清單(全),切莫書到用時方恨少
坦白說,Git目前已經是國內最常見的代碼管理工具之一;無論新手或老油條,都需要有一套自己的Git命令字典,方便隨時使用。本文基本上涵蓋了常用到的所有Git命令,足矣讓我們得心應手的在公司使用Git管理代碼。
前車之鑒,后事之師。希望我的文章們能幫助你少走些彎路。打工人不易,加油!
走,上車,正規車!
車票
一、Git簡介
二、Git與SVN的區別
三、Git基本流程
四、Git文件狀態
五、用戶配置
六、單機使用簡單流程
七、Git命令記錄
1、新建本地倉庫
2、Git配置信息
3、增加、刪除文件
4、代碼提交
5、操作分支(branch)
6、標簽Tag
7、查看信息
8、遠程同步
9、撤銷操作
10、其他操作
11、.gitignore忽略配置(提交到git時,忽略部分文件)
12、Git常用命令速查表
一、Git簡介
Git是一款免費、開源的分布式版本控制系統,用于敏捷高效地處理任何或小或大的項目。
Git與常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本庫的方式,不必服務器端軟件支持。
Git屬于分布式版本控制系統,每個人電腦上都有一個完整的版本庫,稱為本地倉庫,在本地就可以進行版本控制。另外在其他服務器上還有一個版本庫,稱為中央倉庫,中央倉庫的作用是進行版本交換,每個開發人員要保持代碼一致只需要和中央倉庫進行交互就可以了。
二、Git與SVN的區別
Git不僅僅是個版本控制系統,它也是個內容管理系統(CMS),工作管理系統等。
如果你是一個具有使用SVN背景的人,你需要做一定的思想轉換,來適應Git提供的一些概念和特征。
具體區別點:
Git是分布式的,SVN不是:這是Git和其它非分布式的版本控制系統,例如SVN,CVS等,最核心的區別。
Git把內容按元數據方式存儲,而SVN是按文件:所有的資源控制系統都是把文件的元信息隱藏在一個類似.svn,.cvs等的文件夾里。
Git分支和SVN的分支不同:分支在SVN中一點不特別,就是版本庫中的另外的一個目錄。
Git沒有一個全局的版本號,而SVN有:目前為止這是跟SVN相比GIT缺少的最大的一個特征。
Git的內容完整性要優于SVN:Git的內容存儲使用的是SHA-1哈希算法。這能確保代碼內容的完整性,確保在遇到磁盤故障和網絡問題時降低對版本庫的破壞。
三、Git基本流程
下圖是Git基本操作的流程圖,一般來說,日常使用只要記住下圖7個命令就可以了。當然,不能靠這幾個基礎語法就以為熟練使用了Git哦,下面整理了詳細的語法記錄,結合實際情況,祝你快速掌握Git。
四、Git文件狀態
untracked:未跟蹤,表示文件不受git管理,一般新建的文件處于該狀態 Untracked files
staged:已暫存,表示對以修改的文件做了標記,使之包含在下次要提交的文件列表中 Changes to be committed
committed:已提交,表示文件已經被提交到本地倉庫
modified:已修改,表示文件內容已被修改,但是沒有做標記 Changes not staged for commit
五、用戶配置
如果Git沒有獲取到用戶配置,則只能拉取代碼,不能修改,想使用git,需要告訴git是誰在使用;
如下,配置用戶名和郵箱
$ git config --global user.name "xxx" $ git config --global user.email "xxxx@qq.com"
1
2
查看當前用戶名和郵箱
$ git config --global user.name # 獲取當前登錄的用戶 $ git config --global user.email # 獲取當前登錄用戶的郵箱
1
2
六、單機使用簡單流程
單人使用時,只有master,推送項目到遠程倉庫基本流程就沒必要這么麻煩,如下即可:
先手動在git系統端創建新的遠程倉庫
git clone [HTTP URL] 克隆下來后是一個帶有.git的文件夾,也就是本地倉庫
git add . 添加該目錄下所有文件到暫存區,也可以指定文件名稱
git commit -m “第一次提交” 添加文件到本地倉庫并提交描述信息
git push -u origin master 把本地倉庫的文件推送到遠程倉庫(-u 表示第一次推送master分支的所有內容,后面再推送就不需要-u了)
七、Git命令記錄
1、新建本地倉庫
2、Git配置信息
Git配置解析
user.email=chenhh@xxx.com user.name=chenhh core.ignorecase=false # 不許忽略文件名大小寫 core.autocrlf=input # 換行模式為 input,即提交時轉換為LF,檢出時不轉換 core.filemode=false # 不檢查文件權限 core.safecrlf=true # 拒絕提交包含混合換行符的文件 core.editor=vim core.repositoryformatversion=0 # Internal variable identifying the repository format and layout version core.bare=false # 默認不創建裸倉庫 core.logallrefupdates=true # log 所有 ref 的更新 core.precomposeunicode=true # Mac專用選項,開啟以便文件名兼容其他系統 push.default=simple # 只推送本地當前分支,且與上游分支名字一致 alias.lg=log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit pull.rebase=true # 強制開啟 rebase 模式 credential.helper store # 記住密碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
3、增加、刪除文件
4、代碼提交
5、操作分支(branch)
6、標簽Tag
7、查看信息
8、遠程同步
9、撤銷操作
10、其他操作
11、.gitignore忽略配置(提交到git時,忽略部分文件)
在根目錄下創建.gitignore文件,添加下方內容代表忽略該文件或該文件夾下文件不被Git追蹤,即不會提交。
注意:新加.gitignore只能忽略那些原來沒有被提交過的文件,如果某些文件已經被納入了版本管理中,則修改.gitignore是無效的。
target/ .settings/ .idea/ .mvn/ *.classpath *.options *.project
1
2
3
4
5
6
7
12、Git常用命令速查表
如有問題請在評論區留言呦,我會及時糾正。
Git 分布式
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。