建立新專案
mkdir project.git //git 的專案資料夾, 都會習慣性的加上 .git
cd project.git
git init
新增檔案
touch main.cpp
git add .
git commit -m “Initial Project”
git push origin master
下載 github
比如想下載OpenCamera的Source Code, 如下網址https://github.com/almalence/OpenCamera, 可於 git Bash下達
git clone https://github.com/almalence/OpenCamera.git myProjectName
Git Bash操作
Windows版的 git Extension安裝完, 會有另一個程式叫 Git Bash, 這裏面完全是Linux的指令, 甚至可以來拿執行ssh連線, 當成是Linux的終端機.
1. 切換磁碟 : cd /d
Windows PowerShell
附代一提, Windows下的PowerShell, 其實也可以當成Git Bash來使用. 但無法顯示中文, 所以如果commit或是tag時使用中文訊息, 則無法正確顯示出來.
另外, 使用ssh的 scp指令, 也有TMD莫名奇妙的錯誤, 所以強烈建議, 不要使用這個爛東西.
git init & git init −−bare差異
我們通常會把Linux當作是一台Server, 讓多人可以同時連線進去. 雖說Windows也可以這麼作, 但論穩定度, 效能, 及習慣, 使用Windows當server的人其實都有點怪怪的.
git 有個名詞, 叫共用儲存庫, 大都建在Linux上, 讓多人可同時連線進去, 然後使用clone指令複製完整的程式碼到Windows端.
在客戶端, Clone完成後, 會在工作目錄(比如 d:\myProject)下, 產生一個 .git 的資料夾. .git這個資料夾叫作本地端儲存庫, 裏面是所有 git活動的記錄, 比如commit什麼檔案啦, 檔案內容是什麼啦, 何時commit的. 然後git會由這個本地端儲存庫展開所有的程式碼到工作目錄中, 讓我們可以看到完整的原始程式碼。
因此.git這個資料夾, 是我們代碼的集中管理及來源地.
那 .git 這個資料夾, 又是從那兒來的? 當然, 就是clone時, 從Linux的共用儲存庫copy來的. 共用儲存庫只有剛剛說的那些 git 活動的資訊, 而沒有實際的代碼. 所以我們也稱這個資料夾為裸儲存庫.
好, 現在就可以解釋有沒有加 –bare的差異性了.
如果只是想作單機本地端的儲存庫, 不需其他人連線進來共同作業, 那就 git init即可, 會把目前目錄當成工作目錄, 然後於工作目錄下再加入 .git 資料夾記錄 git的活動
但如果想在 Server 建立一個專案, 讓別人連線進來, Server 只需記錄 git 的活動即可, 不需有實際的代碼檔, 那就要下達 git init –bare.
push & pull
git add . : 將所有檔案加入
git commit -m “info” : 進行commit, 此時未上傳到 server
git push origin master : 上傳到server
git pull : 拉下來看有沒有新的版本
log
git log : 列出所有 commit的動作