對于任何一個檔案,在 Git 内都隻有三種狀态:已送出(committed),已修改(modified)和已暫存(staged)
git init | 初始化新項目 |
git status | 檢視所有檔案狀态 |
git add | 将檔案添加到暫存區 |
git commit | 送出暫存區檔案 |
git log | 檢視送出曆史 |
git config --global user.name "<name>“ | 配置使用者姓名 |
git checkout –b feature dev | 建立并切換到新功能分支 |
git add files | 添加新檔案到暫存區 |
git commit –a –m ‘修改原因’ | 将暫存區所有修改送出 |
git checkout dev | 切換回開發分支 |
git merge –-no-ff feature | 合并新功能分支 |
git brance -d feature | 删除新功能分支 |
git pull origin dev | 擷取并合并遠端伺服器最新代碼 |
git push origin dev | 推送本地分支到遠端伺服器對應分支 |
git push origin --delete <branchName> | 删除遠端分支 |
git push origin --delete tag <tagname> | 删除tag |
初始化配置
mkdir testproject
cd testproject
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin [email protected]:test.git
git pull --rebase origin master
忽略一些檔案
.gitignore的檔案
git 復原單個檔案
#git log 找到要復原的commitID
#git checkout -m commitID -- 檔案路徑(相對路徑)
擷取所有分支到本地
remote=origin;for remotebr in `git branch -r | grep $remote | grep -v master | grep -v HEAD `; do git checkout --track $remotebr ; done
添加遠端倉庫
git remote add $remotename git://url
推送所有分支到遠端倉庫
git push --all $remote
推送所有tags
git push --tag $remote
分支操作
看各個分支最後一個送出對象的資訊git branch -v
檢視哪些分支已被并入目前分支git branch --merge
檢視尚未合并的工作 git branch --no-merged
使用-D強項删除分支
本地一個新的分支,上傳到遠端
git push origin test:test
删除遠端分支,本地仍會保留
$ git push origin :test
擷取遠端分支
git checkout -b release1.0.0 origin/release1.0.0
擷取不到遠端分支
git remote show origin
git remote update
git fetch
git checkout -b local-name origin/remote-name
删除不存在對應遠端分支的本地分支
檢視分支狀況 git remote show origin
從本地版本庫中去除 git remote prune origin
本地配置
git config --global core.filemode false
git config --global core.safecrlf warn
git config --global core.autocrlf false
删除已經送出過的檔案
git rm --cached filename
#!/bin/sh
for fname in `find -maxdepth 5 -type d -regex '.*/[bB]in'`; do git rm -r --cached $fname ;done
for fname in `find -maxdepth 5 -type d -regex '.*/obj'`; do git rm -r --cached $fname ;done
for fname in `find -maxdepth 5 -type d -regex '.*/[Ll]og'`; do git rm -r --cached $fname ;done
恢複為上傳的送出