http://git.oschina.net/progit/ 一個GIT的說明
在github COPY一個URL
在倉庫裏設置帳號密碼 git config 裏 url = https://username:[email protected]/jsonxia/starDemo.git
cd :e
cd.. 返回上一級
ls 瀏覽這一級目錄
notepad hello.txt 用記事本創建一個TXT文件
tab 自動補全,如忘記 git bran 按上TAB鍵,補全爲branch
設置操作別名 git config --global alias.co checkout 把CHECKOUT 設爲CO ,
mkdir git 創建一個目錄
git clone xxxx.com
git config --global user.name 'jsonxia'
git config --global user.email '[email protected]'
git config --list查看配置
master 主分支
git 三個區 工作區 暫存區(過度層,避免誤操作,) 版本庫
git status
git add
- name
- . 全部提交到
// git reset HEAD drag.html 撤回來 . 撤回全部
// git add drag.html 綠色 暫存區,紅色,工作區,數字代表意義 第一增加的文件,第二修改,第三,刪除
git commit
- -m // -m "chage demo" 不用打開記事本
- -a -m // git commit -a -m 'xxxxxxxxxxxxxxxthis is comment' 由工作區,直接加到版本庫
git log 如果顯示不完,按ENTER 可再顯示
Q 是退出 對比
git diff 工作區與緩衝區的對比
git diff --cache 或 --staged 版本區與緩衝區的對比
git master 工作區與版本庫的對比
git reset HEAD <file.name> 從暫存區退回到工作區
git checkout -- drag.html 工作區撤回到版本區
git commit --amend
git commit -m 'xxxxxxxxxx' --amend 把上一次提交撤消,再把暫存區提交;
刪除
git rm xxx.file 把暫存區的文件去掉,前提是,工作區刪去了。
git rm -f xxx.file 直接把暫緩區和工作區的文件去掉
git rm --cached xxx.file 只把暫存區的文件去掉,(工作區的可以不刪掉)
恢復
git log 看到commit 後面有一個COMMIT ID (拷貝一部分就行了) /// demo git checkout dkfjdfjdlf drag.js 對一個文件的還原
git checkout commitID 對一個文件的版本進行控制 或者下面的方法是對某一版本進行還原
git reset --hard dfdkfj12121 對一個版本的還原
git reset --hard HEAD^ HEAD表示一個指針,^ 表示前一個版本 往以前的版本回復
git reset --hard HEAD^2 前兩個版本
git reflog 顯示日誌操作
git reflog --hard xxx1213 --gl
git 遠程
git remote // origin 默認CLONE 的遠程倉庫名字 git remote add xxx 更改名字
git remote -v 更改遠程倉庫上的名字
git push origin master 同步分支
權限
+- 添加新的協作人 new collarators ----------- watching
同步更新
git fetch 從遠程拉數據下來,但不合並。。要手動合併
git diff master origin/master 看衝突
git merge origin/master 合併衝突,合併後有 <<< 》》》 這些符號
代碼手動更新後, git commit -a -m 'fdxxxxxxxxxxx' git push origin master
git push 從遠程拉數據下來,合併分支
git pull
fork 創建一個分支 在沒權限的情況下 FORK 分叉 然後CLONE到本地,修改
去網站上 有個PULL REQUEST ----》NOW PULL REQUEST 按鈕
也可以,對小的項目,直接在網頁上編輯,修改
分支
branch
git brach 查看分支
git branch new1 創建NEW1的分支
git checkout new1 切換到NEW1的分支
git checkout -b new2 創建並切換到new2的分支
git checkout master切換到主分支
把分支合併到MASTER上
git checkout master git merge new1 合併遇到衝突時,可以GIT STATUS 查看信息,再手動把衝突修改,再git commit -a -m 'xxx' 提交一次
git branch --merged 查看當前分支的合併分支g
git branch --no-merged 查看沒合併的分支
git branch -d new1 刪除合併後的分支
git branch -D new1 強制刪除
同步到github 上 git push origin new1
發佈版本
git tag v1.0
git push origin v1.0
git 註釋
二、Commit message 的格式
每次提交,Commit message 都包括三個部分:Header,Body 和 Footer。
<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>
其中,Header 是必需的,Body 和 Footer 可以省略。
不管是哪一個部分,任何一行都不得超過72個字符(或100個字符)。這是爲了避免自動換行影響美觀。
2.1 Header
Header部分只有一行,包括三個字段:type(必需)、scope(可選)和subject(必需)。
(1)type
type用於說明 commit 的類別,只允許使用下面7個標識。
feat:新功能(feature)
fix:修補bug
docs:文檔(documentation)
style: 格式(不影響代碼運行的變動)
refactor:重構(即不是新增功能,也不是修改bug的代碼變動)
test:增加測試
chore:構建過程或輔助工具的變動
如果type爲feat和fix,則該 commit 將肯定出現在 Change log 之中。其他情況(docs、chore、style、refactor、test)由你決定,要不要放入 Change log,建議是不要。
(2)scope
scope用於說明 commit 影響的範圍,比如數據層、控制層、視圖層等等,視項目不同而不同。
(3)subject
subject是 commit 目的的簡短描述,不超過50個字符。
以動詞開頭,使用第一人稱現在時,比如change,而不是changed或changes
第一個字母小寫
結尾不加句號(.)