現在我開兩個git bash還有my 跟A資料夾在本地數據庫代表我跟A同事,我在兩個資料夾分別下載空的數據庫(同一個)。
假設我開發好了網頁,上傳到github我可以用通訊軟體告訴同事A我開發好了哪些部分,你可以繼續新增其他功能它就可以git pull來更新工作目錄。
記得上傳指令git push [預設遠端主機名稱][分支名稱]
還有其他情況,例如我沒通知A同事我有開發好網頁上傳到github,他就繼續開發上傳後發生衝突,這時候就git pull下來沒有衝突的話會自動合併
Tuesday, January 24, 2017
git stash
假設你在開發網頁有一個分支issue但不那麼重要,所以你跑去master繼續開發打到一半你的老闆跟你說issue比較重要先去改,但你改到一半不想建立commit可以使用git stash來暫存
- git stash 暫時儲存當前目錄
- git stash list 瀏覽 git stash 列表
- git stash pop還原暫存
- git stash drop 清除最新暫存
- git stash clear 清除全部暫存
git tag標籤
簡單來說就是幫你的commit加入標籤,在建立commit 點後可以輸入git tag 標籤名稱 or git tag -am "備註內容" 標籤名稱
- 查詢標籤 : git tag
- 查詢詳細標籤: git tag -n
- 刪除標籤 : git tag -d 標籤名稱
- 新增輕量標籤: git tag 標籤名稱
- 新增標示標籤: git tag -am "備註內容" 標籤名稱
- 切換到標籤的commit : git checkout 標籤名稱
Monday, January 23, 2017
git merge(1)
建立兩個commit點假設第一個點空的,第二個寫了code,想加入一個功能所以建立分支feature1
切換到feature1分支開始新增功能,新增好後大家也都看過確認沒問題建立commit點,然後切回master回去看index.html程式碼回還原,因為還沒跟feature1進行合併。
確定回到master後輸入git merge feature1就變成下圖。
Git 創建新分支
為什麼要做到多個分支,原理在不希望目前上線的版本的master被人家亂改,或其他開發者做了commit沒有給其他人確認,這樣當然希望其他開發者在分支上完成,大家也多看過了再合併到master
創建新的分支
git branch 分支名稱
現在在終端機輸入git branch feature1
再輸入git branch 會發現有兩個分支master,feature1
接這要切換到feature1分支
輸入git checkout feature1
下在我改任何東西都不用怕改壞掉,因為分支在feature1上,現在我對index.html進行修改,分支圖如下
之後回去看master再回到feature1就會發現你對index.html修改了些什麼
創建新的分支
git branch 分支名稱
現在在終端機輸入git branch feature1
再輸入git branch 會發現有兩個分支master,feature1
接這要切換到feature1分支
輸入git checkout feature1
下在我改任何東西都不用怕改壞掉,因為分支在feature1上,現在我對index.html進行修改,分支圖如下
之後回去看master再回到feature1就會發現你對index.html修改了些什麼
Git branch分支
如果今天跟其他公司的團隊成員協同合作一定要有分支的觀念。
淡藍色點為commit的點,有時候只是單純想修改一些bug,在修改途中會一直重新整理、上傳過程中可能改壞了,總不能讓其他人可到你壞掉的版本,所以這時候就需要開分支,以上圖來說就是在黃球部分開發確認後合併到淡藍色的commit點。
HEAD : 目前所在位置指標
git branch : 瀏覽目前分支
git checkout 前4碼
git checkout master 復原
假設我們現在在淡藍色0.2想回去看淡藍色0.1
終端機輸入git log 可以調查淡藍色0.1的前4碼
git checkout 前4碼移至淡藍色0.1
A successful Git branching model:
http://nvie.com/posts/a-successful-git-branching-model/
HEAD : 目前所在位置指標
git branch : 瀏覽目前分支
git checkout 前4碼
git checkout master 復原
假設我們現在在淡藍色0.2想回去看淡藍色0.1
終端機輸入git log 可以調查淡藍色0.1的前4碼
git checkout 前4碼移至淡藍色0.1
A successful Git branching model:
http://nvie.com/posts/a-successful-git-branching-model/
Git push推送數據庫至github
之前我們都在本地數據庫做事情,現在要把它上傳到github先註冊一組帳號
新增遠端數據庫這樣就可以下載修改上傳
現在我們在github新增一個Repository 名稱叫做gittest,在工作目錄下下在它
輸入git clone 網址,他告訴你是空的Repository,在工作資料夾會出現gittest的資料夾裡面只有一個.git隱藏檔
現在我們拉一個遠端數據庫下來了,進入gittest資料夾可以新增檔案、圖片、程式等等再把它上傳
現在我們建立一個commit點
現在準備上傳到遠端數據庫會用到push這個指令
輸入git push 他會要求你打github的帳密
再新增檔案上傳上去,在去github上觀看會發現commit有2次
有的話恭喜你完成上面的流程圖了
現在我們在github新增一個Repository 名稱叫做gittest,在工作目錄下下在它
輸入git clone 網址,他告訴你是空的Repository,在工作資料夾會出現gittest的資料夾裡面只有一個.git隱藏檔
現在我們拉一個遠端數據庫下來了,進入gittest資料夾可以新增檔案、圖片、程式等等再把它上傳
現在我們建立一個commit點
- touch index.html
- git add .
- git commit -m "updata index"
現在準備上傳到遠端數據庫會用到push這個指令
輸入git push 他會要求你打github的帳密
再新增檔案上傳上去,在去github上觀看會發現commit有2次
有的話恭喜你完成上面的流程圖了
- 下載遠端數據庫
- 在本地修改、新增檔案
- push到github
Sunday, January 22, 2017
指令大全
基礎設定
查詢版本
git version
查詢設定列表
git config --list
輸入姓名
git config --global user.name "你的名字"
輸入email
git config --global user.email "你的email"
新增本地/遠端數據庫
在本地資料夾新增數據庫
git init
複製遠端數據庫
git clone 遠端數據庫網址
增加/刪除檔案
增加檔案進入索引
git add 檔案名稱
增加全部檔案進入索引
git add .
查詢狀態
git status
顯示歷史紀錄
git log
將索引提交到數據庫
git commit -m '更新訊息'
還原指令
還原工作目錄與索引,會跟最後一次 commit 保持一樣
git reset --hard
全部檔案取消索引
git reset HEAD
單一檔案取消索引
git reset HEAD 檔案名稱
恢復單一檔案到最新 commit 狀態
git checkout 檔案名稱
刪除最近一次 commit
git reset --hard "HEAD^"
上面語法如果刪除錯了可以再用此語法還原
git reset --hard ORIG_HEAD
刪除最近一次 commit,但保留異動內容
git reset --soft "HEAD^"
commit 後發現有幾個檔案忘了加入進去,想要補內容進去時
git commit --amend
分支
顯示所有本地分支
git branch
新增分支
git bracnch 分支名稱
切換分支
git checkout 分支名稱
合併指定分支到目前的分支
git merge 分支名稱
刪除分支
git branch -d 分支名稱
遠端數據庫操作
複製遠端數據庫
git clone 遠端數據庫網址
查詢遠端數據庫
git remote
將本地分支推送到遠端分支
git push 遠端數據庫名稱 遠端分支名稱
將遠端分支拉下來與本地分支進行合併
git pull
標籤
查詢標籤
git tag
查詢詳細標籤
git tag n
刪除標籤
git tag -d 標籤名稱
新增輕量標籤
git tag 標籤名稱
新增標示標籤
git tag -am "備註內容" 標籤名稱
暫存
暫時儲存當前目錄
git stash
瀏覽 stash 列表
git stash list
還原暫存
git stash pop
清除最新暫存
git stash drop
清除全部暫存
git stash clear
Git工作狀態還原
重新建立工作目錄git init
建立index.html
git add .
git commit -m "add index.html"
git log
會發現已經建立一個commit 紀錄點
我新建all.css ,all.js把她加入git add . 這樣這些檔案就會準備提交了,但是如果突然不想提交或想在修改可以輸入git reset HEAD就可以取消索引。
如果今天我只想取消一隻檔案呢?
輸入git reset HEAD 檔案名稱
現在我修改index.html並查看狀態
假設我現在發現我把檔案寫壞了
輸入git checkout 檔案名稱就會還原到最新一版的commit紀錄
最後一個大絕招工作目錄與索引通通還原到最後一次commit的紀錄,輸入git reset --hard,會發現工作目錄剩下最一開始建立commit
建立index.html
git add .
git commit -m "add index.html"
git log
會發現已經建立一個commit 紀錄點
我新建all.css ,all.js把她加入git add . 這樣這些檔案就會準備提交了,但是如果突然不想提交或想在修改可以輸入git reset HEAD就可以取消索引。
如果今天我只想取消一隻檔案呢?
輸入git reset HEAD 檔案名稱
現在我修改index.html並查看狀態
假設我現在發現我把檔案寫壞了
輸入git checkout 檔案名稱就會還原到最新一版的commit紀錄
最後一個大絕招工作目錄與索引通通還原到最後一次commit的紀錄,輸入git reset --hard,會發現工作目錄剩下最一開始建立commit
使用.gitignore忽略檔案
有時候有些檔案想忽略不想上傳,例如寫c/c++的 .o檔,這時候就在工作目錄下新增.gitignore來忽略檔案
以上述例子來說
我想忽略所有.html還有css資料夾的檔案我可以修改.gitignore文件如下
https://github.com/github/gitignore
以上述例子來說
我想忽略所有.html還有css資料夾的檔案我可以修改.gitignore文件如下
*.html下列這個網址提供一些gitignore可以知道什麼東西可以不用進版控:
css/
https://github.com/github/gitignore
工作目錄、加入索引、提交版本流程介紹
- 工作目錄下可以新增檔案、新增資料夾、修改程式碼
- 新增html
- 新增css資料夾
- 修改程式碼
- 把工作目錄所做的東西加入索引git add .
- 確認索引沒問題加入commit紀錄 git commit -m "修改紀錄"
範例我在工作目錄新增
- index.html
- a.txt
- 新增css資料夾
- css資料夾下建立all.css
假設我要把上述在工作目錄所做的事情變成一個commit git bash 輸入git add .想確認是否成功
可以輸入git status來檢查狀態
如果又新增b.txt沒有git add .會發生什麼事呢?
在把b.txt加入到工作目錄 git add b.txt,之後建立commit 在 git bash 輸入git commit -m "updata1"
之後我們在git status 會發現他跟你說沒有任何更新資料,為什麼呢?剛剛不是有4個檔案?因為已經我們把這4個 資料更新為一個版本,儲存為一個commit 紀錄
我去index.html新增程式碼
在把b.txt加入到工作目錄 git add b.txt,之後建立commit 在 git bash 輸入git commit -m "updata1"
之後我們在git status 會發現他跟你說沒有任何更新資料,為什麼呢?剛剛不是有4個檔案?因為已經我們把這4個 資料更新為一個版本,儲存為一個commit 紀錄
我去index.html新增程式碼
<!DOCTYPE html>
<html>
<head>
<title>title</title>
</head>
<body>
<h1>test</h1>
</body>
</html>
之後再新增index2.html 然後輸入git status 你會發現 ,你有修改檔案,還有一個未追蹤的檔案
現在把所有檔案加進去git add .
我想把它變成一個更新版本紀錄輸入git commit -m "修改程式碼",這樣已經更新成第二個版本,可以輸入git log 查看紀錄,會發現有2次紀錄
安裝數據庫
1.建立本地數據庫用來記錄各種程式碼的版本
2.新增資料夾(Local Repository)在終端機上輸入git init
3.終端機會出現master代表進入本地數據庫
4.新增的 資料夾會出現一個隱藏檔.git資料夾
5.可以輸入 ls -al 可以看到
.git 資料夾的東西不要隨意更改他記錄檔案變更、上傳記錄用特殊格式儲存在本地數據庫
2.新增資料夾(Local Repository)在終端機上輸入git init
3.終端機會出現master代表進入本地數據庫
4.新增的 資料夾會出現一個隱藏檔.git資料夾
5.可以輸入 ls -al 可以看到
.git 資料夾的東西不要隨意更改他記錄檔案變更、上傳記錄用特殊格式儲存在本地數據庫
設定Git
作者是誰?郵件是多少?
這樣每個跟新點都找的到修改的人
在git-bash輸入下列指令
這樣每個跟新點都找的到修改的人
在git-bash輸入下列指令
git config --global user.email "XXX@gmail.com"
git config --global user.name "XXX"
git config --list
Windows安裝Git
1.下列網址會依照你的作業系統下載安裝檔
2.安裝完成後可以在資料夾中發現git-bash就是我們要用的終端機
3.要判斷安裝是否完成可在終端機輸入 git version
4.開新檔案與展開列表在 git bash 上都可以執行,但是在 windows 預設的 命令提示字元沒辦法使用,所以還請學生一律都使用 git bash 來進行操作
1.移動路徑:cd 路徑
2.回上一層:cd .. PS:是兩個.. 不是一個 .
3.展開列表:ls
4.開新資料夾: mkdir 資料夾名稱
5.開新檔案: touch 檔案名稱
https://git-scm.com/
2.安裝完成後可以在資料夾中發現git-bash就是我們要用的終端機
3.要判斷安裝是否完成可在終端機輸入 git version
4.開新檔案與展開列表在 git bash 上都可以執行,但是在 windows 預設的 命令提示字元沒辦法使用,所以還請學生一律都使用 git bash 來進行操作
1.移動路徑:cd 路徑
2.回上一層:cd .. PS:是兩個.. 不是一個 .
3.展開列表:ls
4.開新資料夾: mkdir 資料夾名稱
5.開新檔案: touch 檔案名稱
Subscribe to:
Posts (Atom)