A. git的常用的幾個命令
1.安裝Git
Linux
Window:到Git官網下載安裝:https://git-scm.com/downloads
2.配置全局用戶Name和E-mail
3.初始化倉庫
4.添加文件到Git倉庫
提示:可反復多次使用,添加多個文件;
5.提交添加的文件到Git倉庫
然後會彈出一個Vim編輯器輸入本次提交的內容;
或者
6.查看倉庫當前的狀態
7.比較當前文件的修改
8.查看歷史提交記錄
或者加上參數查看就比較清晰了
9.回退版本
說明:在Git中,用HEAD表示當前版本,上一個版本就是HEAD^,上上一個版本就是HEAD^^,以此類推,如果需要回退幾十個版本,寫幾十個^容易數不過來,所以可以寫,例如回退30個版本為:HEAD~30。
如果你回退完版本又後悔了,想回來,一般情況下是回不來的,但是如果你可以找到你之前的commit id的話,也是可以的,使用如下即可:
提示:commit id不需要寫全,Git會自動查找;
補充說明:Git中,commit id是一個使用SHA1計算出來的一個非常大的數字,用十六進製表示,你提交時看到的一大串類似3628164...882e1e0的就是commit id(版本號);
在Git中,版本回退速度非常快,因為Git在內部有個指向當前版本的HEAD指針,當你回退版本的時候,Git僅僅是把HEAD從指向回退的版本,然後順便刷新工作區文件;
10.查看操作的歷史命令記錄
結果會將你之前的操作的commit id和具體的操作類型及相關的信息列印出來,這個命令還有一個作用就是,當你過了幾天,你想回退之前的某次提交,但是你不知道commit id了,通過這個你可查找出commit id,就可以輕松回退了,用一句話總結:穿越未來,回到過去,so easy!
11.diff文件
說明:查看工作區和版本庫裡面最新版本文件的區別,也可以不加HEAD參數;
12.丟棄工作區的修改
說明:適用於工作區修改沒有add的文件
13.丟棄暫存區的文件
說明:適用於暫存區已經add的文件,注意執行完此命令,他會將暫存區的修改放回到工作區中,如果要想工作區的修改也丟棄,就執行第12條命令即可;
14.刪除文件
然後提交即可;
如果不小心刪錯了,如果還沒有提交的話使用下面命令即可恢復刪除,注意的是它只能恢復最近版本提交的修改,你工作區的修改是不能被恢復的!
B. git常用命令是什麼
1、在當前目錄新建一個Git代碼庫,:$ git init
2、新建一個目錄,將其初始化為Git代碼庫,:$ git init [project-name]
3、下載一個項目和它的整個代碼歷史,:$ git clone [url]
4、顯示當前的Git配置,:$ git config --list
5、編輯Git配置文件,:$ git config -e [--global]
6、設置提交代碼時的用戶信息,:$ git config [--global] user.name "[name]",:$ git config [--global] user.email "[email address]"
7、添加指定文件到暫存區,:$ git add [file1] [file2] ...
8、添加指定目錄到暫存區,包括子目錄,:$ git add [dir]
9、添加當前目錄的所有文件到暫存區,:$ git add .
10、對於同一個文件的多處變化,可以實現分次提交,:$ git add -p
11、刪除工作區文件,並且將這次刪除放入暫存區,:$ git rm [file1] [file2] ...
12、停止追蹤指定文件,但該文件會保留在工作區,:$ git rm --cached [file]
13、改名文件,並且將這個改名放入暫存區,:$ git mv [file-original] [file-renamed]
14、提交暫存區到倉庫區,:$ git commit -m [message]
15、提交暫存區的指定文件到倉庫區,:$ git commit [file1] [file2] ... -m [message]
16、提交工作區自上次commit之後的變化,直接到倉庫區,:$ git commit -a
17、提交時顯示所有diff信息,:$ git commit -v
18、使用一次新的commit,替代上一次提交
19、 如果代碼沒有任何新變化,則用來改寫上一次commit的提交信息,:$ git commit --amend -m [message]
20、重做上一次commit,並包括指定文件的新變化,:$ git commit --amend [file1] [file2]
(2)git升級命令擴展閱讀:
git有以下功能:
1、從伺服器上克隆完整的Git倉庫(包括代碼和版本信息)到單機上。
2、在自己的機器上根據不同的開發目的,創建分支,修改代碼。
3、在單機上自己創建的分支上提交代碼。
4、在單機上合並分支。
5、把伺服器上最新版的代碼fetch下來,然後跟自己的主分支合並。
6、生成補丁(patch),把補丁發送給主開發者。
7、看主開發者的反饋,如果主開發者發現兩個一般開發者之間有沖突(他們之間可以合作解決的沖突),就會要求他們先解決沖突,然後再由其中一個人提交。如果主開發者可以自己解決,或者沒有沖突,就通過。
8、一般開發者之間解決沖突的方法,開發者之間可以使用pull 命令解決沖突,解決完沖突之後再向主開發者提交補丁。
C. Git常用命令
1.1 配置環境
當安裝Git後首先要做的事情是設置用戶名稱和email地址。這是非常重要的,因為每次Git提交都會使用該用戶信息。該用戶信息和GitHub上注冊的遠程倉庫的相關信息沒有任何關系。
git config --global user.name "你的名字"
git config --global user.email "你的郵箱"
git config --list
配置信息保存在用戶目錄下的.giitconfig文件中
1.2 獲取Git倉庫
要使用Git對我們的代碼進行版本控制,首先需要獲得Git倉庫
獲取Git倉庫通常有兩種方式:
執行步驟如下:
1、在電腦的任意位置創建一個空目錄作為我們的本地Git倉庫
2、進入這個目錄中,點擊右鍵打開Git bash 窗口
3、執行命令git init
可以通過Git提供的命令從遠程倉庫進行克隆,將遠程倉庫克隆到本地的命令形式為:
git clone 遠程Git倉庫地址
1.3 工作目錄、暫存區以及版本庫概念
版本庫:.git隱藏文件就是版本庫,版本庫存儲了很多配置信息、日誌信息和文件版本信息等
工作目錄(工作區):包含.git文件夾的目錄就是工作目錄,主要用於存放開發的代碼
暫存區:.git文件夾中有很多文件,其中一個index文件就是暫存區,也可以叫做stage。暫存區是一個臨時保存修改文件的地方
1.4 Git工作目錄下文件的兩種狀態
Git工作目錄下的文件存在兩種狀態:
Unmodified 未修改狀態
Modified 已修改狀態
Staged 已暫存狀態
這些文件的狀態會隨著我們執行Git的命令發生變化
1.5 本地倉庫操作
git status 查看文件狀態
也可以使用git status -s使輸出信息更簡潔
git add 將未跟蹤的文件加入暫存區,將已經修改的文件加入暫存區也是通過這個命令
git reset 將暫存區文件取消暫存
git commit -m 「你的說明」 將暫存區文件提交到本地倉庫
git rm 刪除文件 說明:這種操作是直接將文件加入到暫存區裡面,直接提交到本地倉庫生效,而直接刪除的話沒有進入到暫存區,需要先把文件加入到暫存區之後,再提交到本地倉庫。
將文件添加至忽略列表
一般我們總會有些文件無需納入Git的管理,也不希望他們總出現在未跟蹤文件列表。通常這些都是自動生成的文件,比如日誌文件,或者編譯過程中創建的臨時文件等。在這種情況下,我們可以在工作目錄中創建一個名為.gitnore的文件(文件名稱固定),列出忽略的文件模式。下面是一個示例:#代表注釋
由於windows無法創建不含文件名的文件,因此我們需要在bash窗口中用如下命令創建。
git log 查看日記記錄
1.6 遠程倉庫操作
如果想查看已經配置的遠程倉庫伺服器,可以運行git remote 命令。它會列出指定的每一個遠程伺服器的簡寫。如果已經克隆了遠程倉庫,那麼至少可以看見origin,這是Git克隆的倉庫伺服器的默認名字
git remote -v 可以查看對遠程倉庫詳細一點的說明
git remote show origin 可以查看對origin更詳細的遠程倉庫的說明
運行git remote add 添加一個遠程Git倉庫,同時指定一個可以引用的簡寫
如果你想獲得一份已經存在了的Git倉庫的拷貝,這時需要用到 git clone 命令。Git克隆的是Git倉庫伺服器上的幾乎所有數據(包括日誌信息、 歷史 記錄等),而不僅僅是復制工作所需要的文件。當你執行git clone 命令的時候,默認配置下Git倉庫中的每一個文件的每一個版本都將被拉取下來。
如果因為一些原因想要移除一個遠程倉庫,可以使用git remote rm
注意:此命令只是從本地移除遠程倉庫的記錄,並不會影響到遠程倉庫
git fetch 是從遠程倉庫獲取最新版本到本地倉庫,不會自動merge
說明:如果使用fetch命令,拉取的文件會放到版本庫裡面,不會自動整合到工作區,如果需要整合到工作區,需要使用 git merge 遠程倉庫別名/遠程倉庫分支
git pull 是從遠程倉庫獲取最新版本並merge到本地倉庫
注意:如果本地倉庫不是從遠程倉庫克隆,而是本地創建的倉庫,並且倉庫中存在文件,此時再從遠程倉庫中拉取文件的時候會報錯(fatal:refusing to merge unrelated histories),解決此我呢提可以在git pull 命令後加入參數 --allow-unrelated-histories
git push
1.7 Git分支
幾乎所有的版本控制系統都是以某種形式支持分支。使用分支意味著你可以把你的工作從開發主線上分離開來,以免影響開發主線。Git的master是一個特殊分支。它跟其它分支沒有區別。之所以每一個倉庫都有mater分支,是因為git init默認創建它,並且大多數人都懶得去改動它。
# 列出所有本地分支
$ git branch
#列出所有遠程分支
$ git branch -r
#列出所有本地分支和遠程分支
$git branch -a
git branch 分支名稱
git checkout 分支名稱
git push 遠程倉庫別名 遠程倉庫分支
git merge 分支名稱 說明:在當前分支下合並其他分支
注意:如果兩個分支存在同樣的文件名且同行的內容不一樣,那麼會產生矛盾,需要自己手動修改產生矛盾後的文件,然後添加到暫存區然後提交。
git branch -d 分支名稱
如果要刪除的分支中進行了一些開發動作,此時執行上面的刪除命令並不會刪除分支,可以將命令中的-d參數改為-D
如果要刪除遠程倉庫中的分支,可以使用命令git push origin -d branchName
1.8 Git標簽
像其他版本控制系統一樣,Git可以給 歷史 中的某一給提交打上標簽,以示重要。比較有代表性的是人們會使用這個功能來標記發布結點(v1.0、v1.2等)。標簽指的是某個分支某個特定時間點的狀態。通過標簽,可以很方便地切換到標記時的狀態。
#新建一個tag
$ git tag [tagName]
$ git tag
#新建一個分支,指向某個tag
$ git checkout -b [branch] [tag]
#刪除本地tag
$git tag -d[tag]
#刪除遠程tag
$git push origin :refs/tags/[tag]
D. 如何使用git命令更新自己的代碼
項目目錄中打開git命令行,如圖:
本步驟非必須,但推薦這么做,先通過git status查看下本地狀態,這樣可以知道是否有修改過的文件沒有提交,因為如果你本地修改的文件沒有提交而伺服器中存在提交修改的版本,那麼更新過程中導致更新過程中就可能產生沖突,所以通過查看狀態確保本地全部提交過,或者沒有修改過別人開放的文件,如圖:
輸入git pull命令,並根據提示輸入密碼,如圖:
4
命令執行成功後,就把伺服器中較新代碼更新到本地了。