git 的使用
1創建新倉庫
mkdir xxx
//創建文件夾
git init
//會將當前目錄初始化爲本地倉庫(發現會有.git 文件)
2 配置作者信息
git config --global user.email "xxxx"
git config--global user.name "yyyyy"
注意:如果是只需要將作者信息配置在當前倉庫,去掉–global 選項
配置信息會記錄在:.git/config 中
3 忽略文件提交(.gitignore)
編輯 .gitignore 文件
*.txt //表示忽略.txt 結尾的文件
!hello.txt //表示不忽略hello.txt
dir/hello // 表示忽略文件夾及其文件夾下所有內容
4 版本庫添加與與移除文件(add&rm)
注意:rm 如果不加上 –cached 選項,會刪除本地文件,加上該選項,則只是將其從暫存區刪除
5 修改文件名(mv)
git mv oldName newName
git add newName
git commit -m "rename file"
6 查看日誌(log)
git log
git log -p // 文件變動信息
git log -p -1 //最近一次提交
git log --oneline //簡短信息
git log --oneline -p
git log --name-only // 文件發生變化
git log --name-status // 文件的狀態變化
7 修改最近一次提交描述(amend)
每次提交文件,需要 -m 加上提交描述,但是如果描述有誤,如何修改呢?
git commit --amend
即可達到修改提交描述的問題
注意:修改的是最新一次提交的commit 註釋
8 命令取別名(alias)
正常來說,添加需要使用 git add xxx
使用
git config --global alias.a add
//這是講 add 取別名爲 a
注意: 如果不加上 --global
則是對當前倉庫生效
打開 .git/config
文件會發現多了一條記錄:
[alias]
a = add
9 git 分支
-
master 分支是用於生產環境的,是穩定的
-
模塊1,模塊2分支使用與開發的,當完成開發後,合併到master 分支,然後模塊1,模塊2分支就沒有用處了,需要刪除
-
HEAD 是每個分支的頭結點,指向創建該分支時在主分支上的時間節點位置
相關命令
-
查看分支
git branch
// 帶星號表示當前所在分支 -
創建分支
git branch xxx
// 創建分支xxx -
切換分支
git checkout xxx
// 切換到 分支xxx
- 測試
現在在ask 分支創建一個文件ask.html,然後提交
再切回master ,查看status
會發現:在Ask 分支內能夠看到 ask.html 文件
但是在master 分支內是不能看到ask.html文件的
注意: 先切到master 分支,然後再去創建其他分支
- 合併分支
. 先切換master
. git merge 分支1
//會將分支1 合併到master
-
查看已合併的分支
git branch --merged
-
刪除分支(一定是刪除已經合併過的分支)
git branch -d 分支1
//刪除分支1
10 解決衝突
產生原因:(假設現在有兩個分支 ask,bbs)
-
兩個分支都是在master 的同一個位置創建
-
各自改變了同一個文件(ask.html) 分支ask 添加了一條記錄,分支bbs 添加了一條記錄
-
分支ask先合併到master
-
分支bbs合併到master 時就會失敗
解決:
- 此時需要手動編輯衝突文件
- git add ask.html //修改後的
- git commit -m ‘handle conflict success’
11 暫存區(stash)
當前有兩個分支;ask,bbs
1.你在ask 中新增了一個文件a,add ,commit
-
修改文件a,但是沒有add,也沒有commit
-
此時切換到分支bbs ,會報錯
error: Your local changes to the following files would be overwritten by checkout:
ASK.TXT
Please commit your changes or stash them before you switch branches.
Aborting
如何解決?
使用stash 將未保存的數據保存到暫存區 stash,然後就可以切換分支了
當你切回 ask分支,發現找不到文件a
查看stash 暫存區列表
git stash list
$ git stash list
stash@{0}: WIP on ask: 527f285 add ASK.TXT
恢復暫存區中數據到當前分支
git stash apply
當暫存區不需要時,如何刪除暫存區?
git stash -drop stash@{0}
注意:stash 不是暫存單個文件,而是存儲一個狀態,可能包含多個文件
12 打TAG
當代碼到了某個比較穩定的階段,可以打上一個標籤TAG,表明此階段代碼是穩定的。
git tag v1.0
查看標籤
git tag
13 生成 zip 代碼壓縮包
git archive master --prefix='topForethought' --format=zip > demo.zip
上述命令會將master 分支打包成名爲demo.zip 的zip 包到當前目錄下
prefix 會給所有文件名前面加上前綴,比如打包前是 “hello”
打包後是 “topForethoughthello”
14 未完待續
3 生成 zip 代碼壓縮包
git archive master --prefix='topForethought' --format=zip > demo.zip
上述命令會將master 分支打包成名爲demo.zip 的zip 包到當前目錄下
prefix 會給所有文件名前面加上前綴,比如打包前是 “hello”
打包後是 “topForethoughthello”
14 未完待續
既然原創審覈未通過,我就轉載了,我轉我自己