【Git 總結】 Git基礎--常用命令

Git 總結系列如下(感興趣的賞個臉看一下唄):
Git基礎–常用命令
Git進階–版本控制管理
Git進階–遠程倉庫,在Github上提交代碼

1. 安裝git

Linux控制檯輸入 git 如果沒有安裝則會有以下提示,輸入sudo apt-get install git

$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git 

Windows 系統前往Git官網
下載,或自行搜索下載。下載完成後默認安裝即可,安裝完成後,打開命令行(windows 下在任意地方右鍵Git Bash Here 也可以),輸入git ,出現以下命令提示即爲安裝成功($ 符號爲Git Bash 自帶的符號)

$ git
usage: git [--version] [--help] [-C <path>] [-c name=value]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
           <command> [<args>]

These are common Git commands used in various situations:

start a working area (see also: git help tutorial)
   clone      Clone a repository into a new directory
   init       Create an empty Git repository or reinitialize an existing one

work on the current change (see also: git help everyday)
   add        Add file contents to the index
   mv         Move or rename a file, a directory, or a symlink
   reset      Reset current HEAD to the specified state
   rm         Remove files from the working tree and from the index

安裝完成後,先全局(--global)設置一下用戶名和用戶郵箱,當然也可以在每個倉庫內設置,將用戶名和郵箱替換爲你自己的就行了。

$ git config --global user.name yugengw
$ git config --global user.email yugengw@gmail.com

2. 創建代碼倉庫

可以在任意地方設置代碼倉庫,作爲學習,你可以新建一個文件夾,隨意創建幾個文本文件或複製一些學習資料。首先使用cd 命令定位到你想要新建倉庫的文件夾(windows 可以使用文件管理器,到某個文件夾,然後右鍵Git Bash Here),
比如我現在想要將E盤的learngit 作爲git倉庫

$ cd e:
$ mkdir learngit
$ cd learngit 

使用git init 將次文件夾初始化爲一個git 倉庫,並創建了master分支。

$ git init
Initialized empty Git repository in E:/learngit/.git/

這樣就會生成一個.git 的隱藏文件夾,就是由這個文件夾來管理倉庫。

3.常用命令

幾個概念 :
工作區:我們正在操作的地方,任何修改都是在工作區
暫存區:當我們修改了文件後,並執行git add 命令就將工作區的修改放進暫存區,使工作區與暫存區一致。暫存區可以防止誤提交,或將一些不想提交的修改隔絕在工作區裏。
放進暫存區之後git commit 就可以將暫存區與上一次git commit不同的東西提交。

1.git status 最經常用的命令,用來查看倉庫狀態,工作區的修改,暫存區的修改等,並做一些命令提示。
status

2.git add <file> 將工作區的修改放進暫存區 . 代表所有文件,使用相對路徑/文件名.擴展名 添加某一文件。(對應的有一個命令git rm <file> 用來從暫存區刪除文件。當你在工作區刪除一個文件後,git rm 到暫存區 相當於 git add 到暫存區。不過前者對應rm操作,後者對應modify操作。結果是一樣的 )
add

3.git commit 將暫存區修改提交

commit

4.git log 查看此分支的每次commit,“532acfca…”這一串是每次commit 的id。
git log --pretty=oneline --abbrev-commit
--pretty=oneline 減少爲只剩commit 那一行
--abbrev-commit 將commit id 長度只顯示一部分
git log

5.git diff 查看文件修改
直接使用git diff 比較工作區與暫存區文件差異.
首先修改一下文件,然後輸入git diff
git diff
紅色的部分前面有個 - 代表刪除東西,綠色的部分前面有個 + 代表增加的東西。
git diff 具體命令:
git diff 比較工作區與暫存區文件差異
git diff <$id1> <$id2> 比較兩次提交之間的差異
git diff <branch1>..<branch2> 在兩個分支之間比較
git diff --staged 比較暫存區和版本庫差異。
6. git branch 新建分支,master分支理論上是不直接修改的,新功能的開發都是在新建分支上進行的,只有功能開發完成並測試後可以發佈了才合併到master分支。
git branch a 新建分支a

git branch -d a 新分支合併到master分支後,已經沒用了,就可以刪除了。

git branch -D a 新分支若創建錯了,或放棄了新功能的開發。想直接刪除,使用上一個命令會提示分支尚未被合併,使用-D 強制刪除,記住不要刪錯了哦。
7. git checkout 切換分支

git checkout a 切換到a分支
checkout
git checkout -b a這個命令的意思就是新建一個a分支,並且自動切換到a分支。(新建分支並切換)
8. 合併分支
新分支開發完畢後,就需要提交,然後進行合併,需要先把分支切換回主分支(這裏就不截圖了,參照上面),然後在主分支執行合併命令。
合併分支的命令有兩個 git mergegit rebase
合併a 分支兩種操作

git checkout master
git merge a
git checkout master
git rebase a

merge 直接合並,合併後是分叉的,但有衝突時只需要解決一次。(圖片來自 git merge 和 git rebase 小結
merge
rebase 合併後提交記錄爲一條線,而且會把你自己分支的commit頂到最前面。但可能得多次解決衝突。
git rebase
rebase

兩種合併到底用哪種要視團隊而定。

不過從知乎上的討論
來看,可以有一個簡單的理解:
個人分支使用 rebase,
公共分支或者說多人協作的分支使用 merge ,
因爲rebase會把當前分支的commit,調整到最前端,導致commit順序混亂。
其他也有不同的理解,詳細的可以看上面的知乎連接。
9. git tag <name> 打標籤,可以爲版本打上標籤, 以確定了打標籤時刻的軟件版本。
git tag v1.0 打上v1.0 標籤。

使用git log 可以看到標籤已經打上去了

如果要爲歷史commit 打標籤,只需要在後面加上要打標籤 的commit id : git tag <name> <id>
eg:git tag v2.0 532acfca

git tag 查看所有標籤
git show <name> 查看標籤信息
git tag -d <name> 刪除標籤

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