【Git】Git客戶端使用
1、使用git init
建立本地倉庫(會在當前資料夾生成.git資料夾,本資料夾中所有檔案都可以上傳)
2、編輯專案,使用git add .
增加本地所有檔案(自動過濾增加過的檔案,可以使用檔名代替.,只新增特定檔案到暫存區,當然還可以排除某些檔案,排除方法後面再說)
git add -A .或者git add --all .會將刪除的檔案去掉再增加
3、使用commit提交暫存區檔案到本地倉庫 4、使用git push將本地倉庫推送到遠端倉庫 B、GitLab中已有上傳過的專案 1、使用git clone從遠端倉庫複製專案,或者使用pull從遠端取回某個分支。2、編輯專案,提交到暫存區,使用git add .
增加本地所有檔案(自動過濾增加過的檔案,可以使用檔名代替.,只新增特定檔案到暫存區,當然還可以排除某些檔案,排除方法後面再說)
3、使用commit提交暫存區檔案到本地倉庫 4、使用git push將本地倉庫推送到遠端倉庫 git命令詳解: 一、配置使用者資訊git config --global user.name "beatfan.hu"
git config --global user.email "[email protected]"
二、設定遠端倉庫別名#網址太長,後面不想用網址,可以使用remote命令來設定遠端別名,origin則代表網址
git remote add origin http://192.168.10.222:8888/ControlBD/ControlBD_Microchip.git
三、初始化本地倉庫 git init 四、新增檔案到暫存區git add filename (若filename替換為. 表示所有檔案,自動過濾新增過的檔案)
注意:git跨平臺開發時,回車換行符有問題,所以,git add filename 時會提示
warning: LF will be replaced by CRLF
……
The file will haveits original line endings in your working directory.
如果是在Windows系統上,把它設定成true,這樣當簽出程式碼時,LF會被轉換成CRLF:
#checkin時將crlf轉化為lf,checkout時將lf轉化回crlf
$ git config --global core.autocrlf true
input #提交時把CRLF轉換成LF,簽出時不轉換回crlf
$ git config –global core.autocrlf input
#取消轉化功能,適合僅在windows下開發
$ git config --global core.autocrlf false
五、過濾檔案 1、在倉庫資料夾中建.gitignore檔案,.gitignore本身會被上傳,內容為: *.zip *.rar filename.xxx 2、在.git/inof/exclude中新增內容,格式與.gitignore相似,不過本身不會被上傳 六、提交暫存區到本地倉庫當前分支git commit -m "註釋"
若要檢視提交歷史,並且每個commit僅一行顯示,git log--pretty=oneline
七、比較差異 #工作區與暫存區的差異git diff
#工作區與本地倉庫特定版本的差異,HEAD~1表示當前版本,HEAD~2表示上一版本,也可以使用commit_id
git diff HEAD~n
八、切換分支git checkout branchName
#不寫預設為master
九、建立分支,並切換到新分支git checkout -b branchName
十、列出所有分支git branch #列出本地所有分支
git branch -r #列出遠端所有分支 git branch -a #列出本地和遠端所有分支 十一、刪除修改分支git branch -m oldname newname #重新命名分支,若newname已存在,可使用-M強制重新命名
git branch -d branchName #刪除branchName分支,-D強制刪除
git branch -d -r branchName #刪除遠端branchName分支
十二、從特定分支中取回資料到工作區 #從特定提交ID中取回所有資料git checkout commit_ID #會取回這個commit_id的資料,並建立一個臨時匿名分支,此時如果不做commit,切換到其他分支,那麼這個分支就會被銷燬,即便是提交,你也只能從這次提交的id中取回,無法顯式找到匿名的分支。
git checkout master filename #從master分支取回特定檔案,. 表示所有檔案。
git checkout commit_ID filename #取回特定提交id的檔案,將filename替換為. 則表示取回所有檔案
git checkout . #危險命令,從暫存區中取回所有資料,覆蓋工作區
十三、從遠端倉庫下載git clone http://xxx.xxx.xxx.xxx/beatfan.hu/bsp_pic32mzef.git #最後面不新增目錄預設下載到當前目錄
十四、推送到遠端倉庫git push remoteUrl/別名 本地分支名:遠端分支名 #省略本地分支名和: 則推送當前分支,git push remoteUrl master,注意 : 不能單獨有,相當於空分支替代遠端分支,即刪除
git push remoteUrl :master = git push remoteUrl --delete master #刪除遠端master
git push remoteUrl master #將當前分支推送到遠端master分支
git push --all remoteUrl #將本地所有分支提交到remoteUrl
十五、從遠端倉庫取回資料操作與push相似,參考push
git pull remoteUrl/別名 遠端分支名:本地分支名
十六、檢視本地倉庫及工作區狀態git status #檢視倉庫及工作區狀態,會顯示未新增的檔案,及更新資訊
十七、檢視日誌git log #檢視當前分支commit到本地倉庫的歷史,加上 --pretty=oneline表示每個顯示一行
git reflog #檢視所有分支commit到本地倉庫中的歷史,包含已經撤銷的commit 十八、設定代理 #設定代理git config --global http.proxy http://192.168.10.209:3128
git config --global https.proxy http://192.168.10.209:3128
十九、移除代理git config --global --unset http.proxy
git config --global --unset https.proxy
示例,批處理提交資料: @echo off @title git bat rem 臨時新增git命令目錄到path變數set path=%path%;"C:\Program Files\Git\cmd\"
set remoteUrl="http://192.168.10.222:8888/ControlBD/ControlBD_Microchip.git"
git config --global core.autocrlf false
git add -v . git commit -m "test add"git config --global user.name "beatfan.hu"
git config --global user.email "[email protected]"
git push %remoteUrl% master:master