git基礎入門以及git常用命令

1、git基礎入門

1.1 基礎概念

git是一個開源的分佈式版本控制系統,用於敏捷高效的處理或大或小的項目,更是一個內容管理系統(CMS),工作管理系統。

git和snv差異

  1. git是分佈式的,svn不是
  2. git把內容按元數據方式存儲,而svn是按照文件
  3. git沒有一個全局的版本號,而svn有
  4. git的內容完整性要優於svn。

1.2 安裝

window平臺安裝,安裝包下載地址

https://gitforwindows.org/

安裝時候按照提示步驟,一步一步安裝就行了。安裝完成就可以使用git工具,還有一個圖形界面的項目管理工具。

圖形管理工具

git命令行

1.2 git配置

git提供了一個git config的工具,用來配置讀取相應的工作環境變量

在 Windows 系統上,Git 會找尋用戶主目錄下的 .gitconfig 文件。主目錄即 $HOME 變量指定的目錄,一般都是 C:\Documents and Settings\$USER

1、配置個人的用戶名和郵件

使用了global選項,以後所有的項目都會默認使用這裏配置的用戶信息

git config --global user.name 'youname'
git config --global user.email [email protected]

2、查看配置信息

git config --list //所有的配置信息都會列出來
git config user.name //查看姓名
git config user.email //查看郵箱

 

3、工作流程圖

 

 

1.3 git工作區、暫存區、版本庫概念

  • 工作區:電腦裏面能看到的目錄
  • 暫存區:英文stage或者index,在.git目錄下的index文件,暫存區也叫索引。
  • 版本庫:工作區有個隱藏的目錄.git,這個不算工作區,而是git的版本庫

2、git基本操作

2.1 git初始化:git init

git使用init來初始化倉庫,因爲很多命令都需要在倉庫裏面使用,因此首先需要初始化,初始化以後,倉庫下回多出來一個.git目錄(隱藏文件,可在文件夾設置裏面把隱藏文件顯示),.git目錄下包括了所有的元數據。如果需要某個文件當做倉庫,只需要再當前目錄下,在執行git init命令。

git init

 

2.2 創建倉庫:git init 【directory】 

使用指定目錄作爲git倉庫,執行這個命令,會生成一個newrepo的文件,作爲git倉庫,newrepo裏面也有一個.git目錄

git init newrepo

2.3 拷貝(克隆)項目:git clone [url]

使用git clone從倉庫中拷貝代碼,也可以克隆項目到指定文件夾。url是git倉庫地址,directory本地目錄。

git clone [url] 
git clone [url] [directory]

2.4 查看項目的當前狀態:git status

查看當前項目的狀態,更改了那些文件。如果你新建了文件,添加了文件到緩存,修改了文件,想知道有沒有提交,都可以執行這個命令,來查看相關的文件信息,和你的操作軌跡。

git satus

2.5 新建文件等文件操作命令:touch [filename]

touch a // 創建一個a文件
echo 1234 >> a // 把1234這個內容放入a文件
cat a // 打開a文件 讀取出a文件中的內容
mkdir test // 創建test文件夾
rm 文件名 // 刪除文件

2.6: 降文件添加到緩存區:git add [filename]

將文件添加到緩存,如果是多個文件,在命令行後面新增文件名即可。

git add test.js//把test.js提交到緩存
git add test.js one.html//把test,one提交到緩存區
git add .//把所有文件提交到緩存區

2.7 提交文件到本地倉庫:git commit

執行git commit將緩存區內容添加到倉庫中。每次提交都會記錄你的名字與郵箱,所以要提前設置一下。-m添加註釋

git commit //提交到倉庫
git commit -m '註釋內容' //提交到倉庫,添加備註信息
git commit -am ''//提交到倉庫,添加備註信息,文件已經放入倉庫,直接提交添加備註,不用add,commit。

2.8 提交代碼到遠程倉庫:git push

git push //把文件上傳到遠程倉庫

2.9 更新代碼,從遠程倉庫拉取代碼:git pull

git pull //從遠程倉庫拉取代碼,類似svn的update

2.10 取消已緩存的內容:git reset head /[filename]

取消贏緩存的內容(git add提交到緩存裏面的文件),

git reset head,取消所有緩存的內容(當前版本);

git reset [filename],取消指定文件的內容。取消以後,可執行status查看文件狀態;

git reset head
git reset test.js

2.11 刪除文件:git rm 【file】

從git裏面移除某個文件,執行git rm [file]命令;

如果要刪除暫存區的的文件,則執行git rm -f [file]命令;

如果要刪除暫存區的文件,但是又要保留在工作目錄中,執行 git rm --cached [file];

從工作區刪除刪除目錄,git rm -r [directory ]

git rm test.js
git rm -f test.js
git rm --cached test.js
git rm -r test 

2.12、比較文件:git diff

如果文件已經修改了,還麼有提交,可以執行 git diff命令,來查看差異

2.13 查看提交日誌:git log/relog

查看命令歷史,查看倉庫的操作歷史

git log
git reflog
git log -n//查看近期提交的n條記錄
git log -p//查看提交的詳細記錄

2.14 快速打開圖形操作界面:gitk

gitk

2.15 查看文件信息:ls

ls // 查看當前路徑下面的所有文件名
ls 文件夾名 // 查看對應文件夾中的內容
ls -l // 拉出最近git提交記錄以及對應修改的文件名
ls -l -a // 拉出最近git提交記錄以及對應修改的文件名,隱藏的文件也會顯示

2.16 文件目錄操作:cd

cd ~ // 將工作路徑快速切換到root
cd - // 將工作路徑切換到上一狀態
cd ../ // 切回到上一個工作路徑
cd 文件夾名 // 進入某個目錄
cd / // 進入根目錄

2.17 常見分支操作:

git branch //列出本地所有分支
git branch 分支名 // 新建分支
git branch // 查看當前所有分支
git checkout 分支名 // 檢出分支
git checkout -b 分支名 // 創建並切換分支
git checkout commitId 文件名(文件路徑下的文件名) 還原這個文件到對應的commitId的版本
(例如src/page/attendance/attendanceSum.vue我想把它還原到2個版本之前 首先git log src/page/attendance/attendanceSum.vue找到對應想要還原的版本
複製版本提交的commitID 然後執行git checkout commitID src/page/attendance/attendanceSum.vue
這樣就把attendanceSum.vue這個單個文件 還原到了對應版本)
git branch -v // 查看分支以及提交hash值和commit信息
git merge 分支名 // 把該分支的內容合併到現有分支上
git branch -d 分支名 // 刪除分支
git branch -D 分支名 // 強制刪除 若沒有其他分支合併就刪除 d會提示 D不會
git branch -m 舊分支名 新分支名 // 修改分支名
git branch -M 舊分支名 新分支名 // 修改分支名 M強制修改 若與其他分支有衝突也會創建(慎用)
git branch -r // 列出遠程分支(遠程所有分支名)
git branch -a // 查看遠程分支(列出遠程分支以及本地分支名)
git fetch // 更新remote索引
git push -u origin 分支名 // 將本地分支推送到origin主機,同時指定origin爲默認主機,後面就可以不加任何參數使用git push 也可解決 git建立遠程分支關聯時出現fatal ... upstram的問題

2.17 標籤操作:git tag

git tag // 查看列出所有打過的標籤名
git tag -d 標籤名 // 刪除對應標籤
git tag 標籤名字 // 在當前倉庫打個標籤
git tag foo -m "message" // 在當前提交上,打標籤foo 並給message信息註釋
git tag 標籤名 哈希值 -m "message" // 在某個哈希值上打標籤並且寫上標籤的信息
git tag foo HEAD~4 // 在當前提交之前的第4個版本上 打標籤foo
git push origin --tags // 把所有打好的標籤推送到遠程倉庫
git push origin 標籤名 // 把指定標籤推送到遠程倉庫
git stash // 把暫存區的內容 暫時放在其他中 使暫存區變空
git stash list // 查看stash了哪些存儲
git stash pop // 將stash中的內容恢復到當前目錄,將緩存堆棧中的對應stash刪除
git stash apply // 將stash中的內容恢復到當前目錄,不會將緩存堆棧中的對應stash刪除
git stash clear // 刪除所有緩存的stash
git pull --tags // 把遠程倉庫的標籤也拉取下來
git push origin :refs/tags/遠程標籤名 // 刪除遠程倉庫的標籤

2.18 遠程同步操作

# 下載遠程倉庫的所有變動
$ git fetch [remote]
 
# 顯示所有遠程倉庫
$ git remote -v
 
# 顯示某個遠程倉庫的信息
$ git remote show [remote]
 
# 增加一個新的遠程倉庫,並命名
$ git remote add [shortname] [url]
 
# 取回遠程倉庫的變化,並與本地分支合併
$ git pull [remote] [branch]
 
# 上傳本地指定分支到遠程倉庫
$ git push [remote] [branch]
 
# 強行推送當前分支到遠程倉庫,即使有衝突
$ git push [remote] --force
 
# 推送所有分支到遠程倉庫
$ git push [remote] --all

3、提交代碼步驟

3.1 查看當前狀態:git status

第一步,查看當前文件狀態,git status,查看修改了那些文件,紅色字體就是修改的文件。

3.2 添加文件到緩存區:git add .

如果one.vue,test.vue你都都想提交執行git add .

如果只提交一個文件,執行 git add one.vue,提交指定的文件。

再執行 status看一下,是否全部提交成功。

3.3 提交代碼到本地倉庫:git commit -m 'xx'

提交代碼(提交已經加到緩存區裏面的代碼)到本地倉庫

3.4 從遠程主機更新代碼:git pull [主機] [分支]

取回遠程主機某個分支的更新,再與本地的指定分支合併

3.5提交代碼到遠程倉庫:git push [主機] 【分支】

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章