一、本地git
-
1、設(shè)置git
可以試著輸入git
,看有沒有安裝。沒有安裝自行安裝。
安裝完成后,還需要最后一步設(shè)置,在命令行輸入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
注意git config
命令的--global
參數(shù),用了這個參數(shù),表示你這臺機(jī)器上所有的Git倉庫都會使用這個配置,當(dāng)然也可以對某個倉庫指定不同的用戶名和Email地址。
- 可查看git的綁定地址,查看用戶名和郵箱地址,修改執(zhí)行上一步即可:
$ git config user.name
$ git config user.email
-
2、創(chuàng)建版本庫(本地)
- 通過
git init
命令把這個目錄變成Git
可以管理的倉庫:
$ git init
Initialized empty Git repository in C:/Users/my/Desktop/git庫/.git/
-
3、把文件添加到版本庫
- 第一步,用命令
git add
告訴Git,把文件添加到倉庫:
$ git add 文件名(添加單個)
$ git add * (添加全部)
執(zhí)行上面的命令,沒有任何顯示,這就對了,Unix的哲學(xué)是“沒有消息就是好消息”,說明添加成功。
- 第二步,用命令
git commit
告訴Git
,把文件提交到倉庫:
$ git commit -m "添加了...文件"
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)```
create mode 100644 readme.txt
git commit
命令,-m
后面輸入的是本次提交的說明,可以輸入任意內(nèi)容,當(dāng)然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動記錄。
- 為什么Git添加文件需要
add
,commit
一共兩步呢?因為commit
可以一次提交很多文件,所以你可以多次add
不同的文件,比如:
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
-
4、版本回退
- 用
git log
命令查看:
$ git log
命令顯示從最近到最遠(yuǎn)的提交日志,
- 如果嫌輸出信息太多,看得眼花繚亂的,可以試試加上
--pretty=oneline
參數(shù):
$ git log --pretty=oneline
你看到的一大串類似1094adb...
的是commit id(版本號)
- 在Git中,用
HEAD
表示當(dāng)前版本,上一個版本就是HEAD^
,上上一個版本就是HEAD^^
,當(dāng)然往上100個版本寫100個^比較容易數(shù)不過來,所以寫成HEAD~100
$ git reset --hard HEAD^
HEAD is now at e475afc add distributed
- 還可以指定版本進(jìn)行切換(前幾位就行)
$ git reset --hard 1094a
HEAD is now at 83b0afe append GPL
- Git提供了一個命令
git reflog
用來記錄你的每一次命令:
$ git reflog
e475afc HEAD@{1}: reset: moving to HEAD^
1094adb (HEAD -> master) HEAD@{2}: commit: append GPL
e475afc HEAD@{3}: commit: add distributed
eaadf4e HEAD@{4}: commit (initial): wrote a readme file
-
5、工作區(qū)和暫存區(qū)
工作區(qū)(Working Directory)
,就是你在電腦里能看到的目錄
- 第一步用
git add
把文件添加進(jìn)去,實際上就是把文件修改添加到暫存區(qū); - 第二步用
git commit
提交更改,實際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支。 - 因為我們創(chuàng)建
Git
版本庫時,Git
自動為我們創(chuàng)建了唯一一個master
分支,所以,現(xiàn)在,git commit
就是往master
分支上提交更改。
$ git status
-
如果有綠色就是還在暫存區(qū),執(zhí)行commit提交即可
git綠色.png -
如果有紅色就是在工作區(qū)發(fā)生了變化(修改或添加了),沒有調(diào)到緩存區(qū)
git紅色.png -
commit之后,刪除了也會檢測到,變成紅色。如果add了,但是沒commit,這個時候把a(bǔ)dd的文件刪除了,查看status,還是綠色狀態(tài),但是提交之后會直接變紅,告知已刪除。
git紅色 (2).png 如果是不小心刪的,想撤回,不要緊,執(zhí)行
↓
下面操作git checkout -- test.txt
,會將add
過的或者commit
過的刪除文件撤回。-
6、丟棄工作區(qū)的修改
$ git checkout -- test.txt
撤回命令作用于之前提交過緩存區(qū)的文件,如果是新建的文件,沒有添加過緩存區(qū),無效。
命令git checkout -- test.txt
意思就是,把test.txt文件在工作區(qū)的修改全部撤銷
(當(dāng)然也可以手動改過來,如果不嫌麻煩或者記得的話)
-
7、緩存區(qū)退回到工作區(qū)
如果執(zhí)行了add命令,使用上一步就不好使了,需要執(zhí)行↓
$ git reset HEAD test.txt
$ git checkout -- test.txt
先將狀態(tài)撤回到工作區(qū),再將狀態(tài)撤回到修改前
Unstaged changes after reset:
M test.txt
二、遠(yuǎn)程倉庫(GitHub)【都是綁定的自己的賬號內(nèi)的倉庫】
-
1.添加關(guān)聯(lián)的遠(yuǎn)程倉庫
$ git remote add origin 'https://github.com/suibianni/ABB.git'
usage: git remote add [<options>] <name> <url>
用法: git remote add 起個名字 哪個url
也可添加多幾個,名字不能重復(fù)(可添加別人的,但是沒用,push不上去)
-
2.查看關(guān)聯(lián)的遠(yuǎn)程倉庫
$ git remote -v
first https://github.com/suibianni/BBC.git (fetch)
first https://github.com/suibianni/BBC.git (push)
origin 'https://github.com/suibianni/ABB.git' (fetch)
origin 'https://github.com/suibianni/ABB.git' (push)
-
3.刪除本地指定的遠(yuǎn)程地址
$ git remote remove origin 即可刪除
-
4.修改關(guān)聯(lián)遠(yuǎn)程倉庫
$ git remote set-url origin https://github.com/suibianni/disan.git
此時再查看關(guān)聯(lián)的存?zhèn)}庫就變了,并且可以更改"其他名字對應(yīng)的url"
$ git remote -v
first https://github.com/suibianni/BBC.git (fetch)
first https://github.com/suibianni/BBC.git (push)
origin https://github.com/suibianni/disan.git (fetch)
origin https://github.com/suibianni/disan.git (push)
-
5.推送到遠(yuǎn)程master分支
$ git push -u first master (首次執(zhí)行即可關(guān)聯(lián))
$ git push first master (之后再推就不用-u了)
-
6.克隆,克隆一個本地倉庫
$ git clone url
如果有多個人協(xié)作開發(fā),那么每個人各自從遠(yuǎn)程克隆一份就可以了。
三、分支管理
-
1.創(chuàng)建分支
$ git branch dev
-
2.切換分支
$ git checkout dev
-
3.創(chuàng)建并切換分支,等同于上兩步
$ git checkout -b dev
-
4.查看當(dāng)前分支
$ git branch
* dev (帶星號表示當(dāng)前分支)
master
-
5.使用dev分支push文件
先對test.txt文件修改,添加1234567890
,執(zhí)行add
,commit
$ git push -u origin dev (push到了origin庫的dev分支)
再次切換回master
分支git checkout master
后發(fā)現(xiàn),test.txt文件還是原來的樣子,并沒有添加1234567890
,因為那個提交是在dev分支上,而master分支此刻的提交點并沒有變,如果想要一同改變,需要↓
合并分支。
-
6.合并分支
$ git merge dev
合并指定分支到當(dāng)前分支。再查看test.txt就和更改后的一樣的。
-
7.刪除分支
$ git branch -d dev
刪除之后就只剩下master分支了
如果要丟棄一個沒有被合并過的分支,可以通過↓
大寫D
參數(shù)
$ git branch -D <name> 強(qiáng)行刪除
相關(guān):https://blog.csdn.net/u013474436/article/details/51287128