共計 3557 個字符,預計需要花費 9 分鐘才能閱讀完成。
這篇文章主要講解了“git 中的命令怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“git 中的命令怎么使用”吧!
git 的安裝
本文使用的是 win7 平臺。Git 可以在 Linux、Unix、Mac 和 Windows 這幾大平臺上安裝了,可以根據自己的操作系統去官網下載。
git 常見命令
介紹命令之前先來張圖吧,所有的命令都是圍繞張圖的
Workspace:工作區,就是你平時存放項目代碼的地方
Index / Stage:暫存區,用于臨時存放文件的改動,事實上它只是一個文件,保存即將提交到文件列表信息。
Repository:本地倉庫區(或版本庫),就是安全存放數據的位置,這里面有我們提交到所有版本的數據。其中 HEAD 指向最新放入倉庫的版本。
Remote:遠程倉庫,托管代碼的服務器。弄清楚上面四個概念,我們就開始實操吧。
通過 git init 命令創建 Git 可以管理的倉庫(本地庫初始化)
Administrator@XCRBHXD05IEZEVS MINGW64 /d
$ mkdir gitstudy
Administrator@XCRBHXD05IEZEVS MINGW64 /d
$ cd gitstudy/
Administrator@XCRBHXD05IEZEVS MINGW64 /d/gitstudy
$ git init
Initialized empty Git repository in D:/gitstudy/.git/
執行完這個命令我們可以看到文件下面會多一個.git 的文件夾,以后在這個文件夾下 (工作區) 的都可以被 git 管理了。
git add 命令把文件添加到暫存區。下面我們創建(echo 文件名字)一個 demo.txt 文件
$ echo demo.txt
此時的 demo.txt 文件是帶個藍色?的,當我們執行 git add – demo.txt 后
那如果這個目錄下面有幾百個文件都要加到暫存區怎么辦?此時可以使用 git add . 這個命令可以把當前目錄下所有文件加入暫存區。
git status 查看顯示工作區和暫存區的狀態。
$ git status
git commit -m 提交信息描述 命令把文件添加到本地倉庫。
$ git commit -m 第一次提交
[master (root-commit) 22f0a2b] 第一次提交
1 file changed, 1 insertion(+)
create mode 100644 demo.txt
提交后 demo.txt 顏色是不是變綠了。
git commit -am 文件描述【am】就是【add modify】兩個命令的合并。比如我們修改了兩個文件 demo.txt 和 demo1.txt。這時候我們可以直接使用 git commit -am 命令
git commit -am 第三次提交
如果新增了文件,必須使用分開的命令,不能用合并命令。
git add .
git commit -m update
回退未使用 git add(文件必須是 commit 過的)
使用 git checkout — filename(文件名)注意中間有 –
$ git checkout -- demo.txt
回退所有的文件修改使用 git checkout .
git checkout .
已使用 git add,未使用 git commit
使用 git reset HEAD filename(指定文件名)
git reset HEAD demo.txt
回退所有文件修改 git reset HEAD
git reset HEAD
在使用本命令后,本地的修改并不會消失,而是回到了上面 未使用 git add 緩存代碼,繼續使用用 git checkout — filename,就可以放棄本地修改。
已使用 git commit 未 push
git reset –hard HEAD^ 回退到上一次 commit 的狀態(這個命令需謹慎執行)。HEAD^(代表上一次)或者通過 git reset –hard commitid(是版本號 可以根據 git log 查看,每次 commit 都會生成一個)
git reset --hard HEAD^
git reset –mixed HEAD^ (–mixed 也可以省略),保留工作區,并且清空暫存區。就是回到上一次 git add 之前。
git reset HEAD^
git reset –soft HEAD^ 重置 HEAD 到指定的版本,不會修改暫存區和暫存區就是回到上一次 git commit 之前,適用于合并 commit 節點。
git reset --soft HEAD^
git revert commitid 會回退到之前的那次提交,會產生一個新的 commit,將這次回退作為一次修改記錄提交,這樣的好處是不修改歷史提交記錄。
git revert e241441d8a85b2d89
已使用 push
git push -f 可以在本地執行以上操作后,然后強行推送到遠程倉庫
git push -f
刪除
git rm 文件名 這個必須是 commit 之后的文件
git rm demo.txt
git rm -f 文件名 這個執行 add 未執行 commit 可以刪除
git rm -f 4.txt
遠程倉庫
以上都是在本地倉庫進行操作的,提交的代碼別人也是看不到的,如果寫著代碼硬盤壞了咋辦?那是不是所有的代碼都沒了。所以寫完了代碼趕緊推送到服務器上去。
添加遠程庫
用命令 git remote add origin git@
server-name:path/repo-name.git;關聯遠程倉庫
關聯之前肯定要在遠程創建倉庫
首先要到 https://github.com/ 全球最大同性 jiao 友網站上注冊一個賬號。已有賬號的就忽略了。
接下來就是新建一個遠程倉庫了。
git remote add origin git@github.com:workit1/studygit.git
關聯后,使用命令 git push -u origin master 第一次推送 master 分支的所有內容。
git push -u origin master
以后,每次本地提交后可以使用命令 git push origin master 推送最新修改到遠程倉庫。
從遠程庫克隆
前面我們了解先有本地倉庫,再有遠程庫的時候,如何關聯遠程庫。但是一般實際開發中我們是先有遠程倉庫的,然后從遠程庫克隆。
git clone https://github.com/workit1/gitstudy.git
分支管理
git checkout -b 創建分支名 表示創建并切換分支
Administrator@XCRBHXD05IEZEVS MINGW64 /d/gitstudy (master)
$ git checkout -b feature_a
Switched to a new branch feature_a
基于 master 分支創建了 feature_a 分支并且切換到了 feature_a 分支。
git checkout name 或者 git switch name 切換分支
git checkout master
git branch -a 查看所有分支,包含遠程分支
git branch 查看本地所有分支
合并分支
git merge master
當有沖突的時候這里會個正在合并的狀態
取消合并, 此時你如果不想合并了,可以使用 git merge –abort 取消。
git merge --abort
刪除分支
刪除本地分支 git branch -d name
git branch -d feature_a
刪除遠程分支 git branch -D name
實際項目中如果我們需要開發一個功能完整的流程是什么樣的呢?多數公司模式應該下面這樣的流程吧。1. 先基于主干分支 拉出一個功能分支(feature_xx)進行開發。2. 開發完成后測試基于這個功能分支進行測試。3. 測試完成后,開發把功能分支合并到主干分支。合并代碼操作如下:
先切換到主干分支(release),主干分支 git pull 拉下遠程分支最新代碼(可能有同事提交了新的代碼)
切回到功能分支 把本地主干最新代碼合(git merge)并到當前功能分支,如果合并有沖突就解決沖突后重新提交。
切換到主干分支執行 git merge 功能分支。(這一步實際工作中一般人是不能這么操作的),代碼必須要先發起一個 merge request 經過代碼 review 才能進行合并到主干分支的。
合并完主干分支后,功能分支就可以刪除了。
感謝各位的閱讀,以上就是“git 中的命令怎么使用”的內容了,經過本文的學習后,相信大家對 git 中的命令怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關知識點的文章,歡迎關注!