Git 是一個分散式的版本控制管理
在一個專案裡面可以建立多個分支給開發者
達到互不干擾彼此的程式碼
最後在交由給管理者負責合併發佈版號
以下介紹基本的用法
CentOS and Fedora 安裝 yum install git
建立專案
mkdir test1; cd ~/test1 git init
從遠端or本機(來源)抓取專案
git clone {git server link} git clone ~/test1 (從本機clone) git clone ~/test1 ~/test2 (從本機抓取放到test2目錄裡面)
將untrace files 跟 modified files進入暫存快照區
## untrace files : 第一次新增檔案,還未被git做追蹤,在add做完之後變成以追蹤狀態
git add {file} (single file) git add . (all files)
將已儲存快照的檔案 commit 並輸入改版訊息 以便日後做log查詢
git commit git commit -a (將modified files儲存快照並且做commit) git commit -am "{log message}" 更動最後一筆更新,最常見的復原發生在太早提交更新,也許忘了加入某些檔案、或者搞砸了提交的訊息。 若想要試著重新提交,可試著加上 --amend 選項: git commit --amend
將專案push到遠端(git server)上
git push origin master git push origin developer:master (將developer分支的檔案 push 到 master分支裡面)
檔案復原
git checkout t.txt (將修改過的檔案未進快照暫存區的地方還原) git checkout -- t.txt (將修改過的檔案未進快照暫存區的地方還原) git checkout HEAD t.txt (從暫存快照區的檔案還原) git reset HEAD t.txt (從暫存快照區的檔案拉回修改區)
復原上個版本
git reset --soft(可省略) HEAD^ (回到上個版本未commit 的狀態) git reset --hard HEAD^ (回到上個版本) (回到指定的的版本{commit sha1} , 要記得當前版本的sha1 或是下git tag 做當前版本標記,以免還原之後回不去當前版本) git reset --hard 232adbee544d57087317a909e6f8357475611ceb
合併
git merge devel (將devel的分支log合併到目前的分支) git rebase master (將master的分支包含log 合併到 目前的分支,目前分支的log將會跟master的log一樣)
比較好的開發狀態分支圖
其他指令
(增加遠端的位置) git remote add origin {link} git remote -v (查詢) 從遠端抓取最新分支,兩者用法不解釋 參考網址: http://ruby-china.org/topics/4768 git fetch git fetch origin master:master git pull git pull origin master:master 查看當前狀態 git status 分支查詢 git branch git branch -a 切換分支 git checkout {branch} 刪除分支 git branch -D <branchname> git push origin --delete <branchname> PS:(remote) log 查詢 git log git log -all
參考資料:
沒有留言:
張貼留言