GIT常用的基础命令
1.起步
用戶信息
配置你個人的用戶名稱和電子郵件地址。這兩條配置很重要,每次?Git?提交時都會引用這兩條信息,說明是誰提交了更新,所以會隨更新內容一起被永久納入歷史記錄:
$?git?config?--global?user.name?“youname”
$?git?config?--global?user.email?“12345@example.com”
如果用了?--global?選項,那么更改的配置文件就是位于你用戶主目錄下的那個(見圖1),以后你所有的項目都會默認使用這里配置的用戶信息。如果要在某個特定的項目中使用其他名字或者電郵,只要去掉?--global?選項重新配置即可,新的設定保存在當前項目的?.git/config?文件里。
?
圖1
?
2.GIT基礎
查看配置信息
查看已有的配置信息
$?git?config?--list
$?git?config?-l
?
獲取幫助
例如想獲取config命令的幫助信息
$?git?help?config?
$?git?config?--help
?
初始化新倉庫
$?git?init
初始化后,在當前目錄下會出現一個名為?.git?的目錄,所有?Git?需要的數據和資源都存放在這個目錄中。不過目前,僅僅是按照既有的結構框架初始化好了里邊所有的文件和目錄,但我們還沒有開始跟蹤管理項目中的任何一個文件。
?
如果當前目錄下有幾個文件想要納入版本控制,需要先用?git?add?命令告訴?Git?開始對這些文件進行跟蹤,然后提交:
跟蹤文件:(將文件加到暫存區域)
$?git?add?readme.txt
跟蹤全部文件
$?git?add?.
提交更新
$?git?commit?-m?“first?version”
上傳(推送)到github
$?git?push?origin?master
?
從現有倉庫克隆
$?git?clone?git://github.com/youname/project.git
$?git?clone?git@github.com:youname/project.git
$?git?clone?https://github.com/youname/project.git
?
檢查當前文件狀態
$?git?status
?
創建.gitignore文件
$?touch?.gitignore
?
?
查看修改之后沒有暫存起來的內容
$?git?diff
?
移除文件
$?git?rm?readme.txt
?
重命名文件
$?git?mv?oldname.txt?newname.txt
?
查看提交歷史
$?git?log
?
取消暫存
$?git?reset?HEAD .gitignore
?
?
?
添加遠程倉庫(遠程倉庫必須先在github上建好)
$?git?remote?add?[shortname]?[url]
實例:
$?git?remote?add?origin?git@github.com:youname/yourRepo.git
?
推送數據到倉庫
$?git?push?[remote-name]?[branch-name]
如果要把本地的?master?分支推送到origin服務器上(再次說明下,克隆操作會自動使用默認的master?和origin?名字),可以運行下面的命令:
$?git?push?origin?master
?
從遠程倉庫抓取數據
$?git?fetch?[remote-name]
?
碰到遠端倉庫服務器遷移,或者原來的克隆鏡像不再使用,又或者某個參與者不再貢獻代碼,那么需要移除對應的遠端倉庫
遠程倉庫的刪除
$?git?remote?rm?origin
遠程倉庫重命名(此處命名的是上文添加遠程倉庫中的shortname)
$?git?remote?rename?origin?origin2
?
?
?
自動補全
輸入命令后按tab鍵,就會看到列出所有匹配的可用命令建議:
$?git?co<tab>
?
??
3.GIT分支
創建一個名為“testing”的分支
$?git?branch?testing
?
?
?
切換到“testing”分支(默認為master分支)
$?git?checkout?testing
?
新建并切換到該分支
$?git?checkout?-b?iss53
這條命令相當于執行下面這兩條命令
$?git?branch?iss53
$?git?checkout?iss53
?
刪除hotfix分支(如果該分支還未被合并則會提示錯誤,因為這樣會丟失數據)
$?git?branch?-d?hotfix
強制刪除hotfix分支(強制刪除,不會提示錯誤)
$?git?branch?-D?hotfix
?
?
合并iss53分支(先切換到master分支)
$?git?checkout?master
$?git?merge?iss53
?
查看當前所有分支
$?git?branch
?
查看各個分支最后一個提交對象的信息
$?git?branch?-v
?
查看已經與當前分支合并的分支(已經合并的查出來后可以刪掉)
$?git?branch?--merge
?
查看未與當前分支合并的分支
$?git?branch?--no-merged
?
同步遠程服務器數據到本地
$?git?fetch?origin
?
從新添加的遠程倉庫下載數據
$?git?remote?add?teamone?git://git.team1.ourcompany.com
$?git?fetch?teamone
?
分化一個新的分支(使用這個命令會從服務器上下載master最新的版本,所以如果當前本地版本不是最新的,新的分支和本地分支會不同)
$?git?checkout?-b?test1?origin/master
假如你用這個新的分支進行git?push,并且通過了合并,那么會在遠程倉庫建立一個新的同名分支
刪除該分支的方法
$?git?push?origin?:test1
?
衍合:根據當前分支(也就是要進行衍合的分支test1)后續的歷次提交對象(這里只有一個?C3),生成一系列文件補丁,然后以基底分支(也就是主干分支master)最后一個提交對象(C4)為新的出發點,逐個應用之前準備好的補丁文件,最后會生成一個新的合并提交對象(C3'),從而改寫?test1的提交歷史,使它成為master分支的直接下游
圖?把?C3?里產生的改變到?C4?上重演一遍
分支的衍合:將test1分支衍合到master主分支
$?git?checkout?test1
$?git?rebase?master
另一種方法,直接衍合,不用再先切換到test1
$?git?rebase?master?test1
?
?
?
?
快進master分支
$?git?checkout?master
$?git?merge?client
?
衍合:一旦分支中的提交對象發布到公共倉庫,就千萬不要對該分支進行衍合操作。
總結
以上是生活随笔為你收集整理的GIT常用的基础命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python OpenCV实例:图像直方
- 下一篇: TortoiseGit清除账号密码