背景:需要將本地項(xiàng)目 project 提交到 Coding 進(jìn)行多人協(xié)作開發(fā)
上傳
把Project變成git可以管理的倉庫
git init
查看倉庫狀態(tài)
git status
將本地文件放入倉庫中 和添加Commit
git add *
git commit -m 'coding 1.0.0'
把本地倉庫與Coding上的倉庫關(guān)聯(lián)
git remote add origin https://git.coding.net/yourCoding/yourProject.git
git remove -v
把本地倉庫所有內(nèi)容推送到Coding上
git push -u origin master
//第一次推送master分支時(shí),加上了-u參數(shù),Git不但會把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支诀诊,還會把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來,在以后的推送或者拉取時(shí)就可以簡化命令
這樣就可以了?
提交修改
將代碼Clone 到本地
git clone https://coding.net/你的路徑
//clone 某一分支
git clone -b dev https://git.coding.net/...
代碼修改耐亏,查看不同
git status
// 告訴你有文件被修改過
git diff JustErp/BaseWebVC.swift
// 代碼修改,查看不同
提交修改的文件
git add . //把文件修改添加到暫存區(qū)
git commit -m "gittest" //把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支
git push
//強(qiáng)制提交
git push -u origin dev -f
查看歷史提交記錄
git log
版本回退
上一個版本就是HEAD^ ,上上個HEAD^^, 當(dāng)然往上100個版本寫100個^比較容易數(shù)不過來拘领,所以寫成HEAD~100
//本地回退
git reset --hard HEAD^^
//本地回退后藕帜、遠(yuǎn)程回退
git push origin dev --force
回退后烫罩,重新恢復(fù)到某一個版本
git reset --hard 3628164
//版本號沒必要寫全,前幾位就可以了洽故,Git會自動去找贝攒。當(dāng)然也不能只寫前一兩位,因?yàn)镚it可能會找到多個版本號时甚,就無法確定是哪一個了
回退版本的時(shí)候找到 commit id
git reflog
在工作區(qū)或者暫存區(qū)的時(shí)候隘弊,撤銷修改
git checkout -- file
//git checkout其實(shí)是用版本庫里的版本替換工作區(qū)的版本,無論工作區(qū)是修改還是刪除荒适,都可以“一鍵還原”梨熙。
分支管理
團(tuán)隊(duì)分支管理圖
git branch //查看分支
git branch dev //創(chuàng)建分支
git checkout dev //切換到分支
e.g.:
localhost:jst_dev clear$ git checkout -b crmPage
Switched to a new branch 'crmPage'
localhost:jst_dev clear$ git branch
* crmPage
dev
我們把dev分支的工作成果合并到master分支上:
git merge dev
刪除分支
git branch -d dev
錯誤
git push 錯誤
git push
remote: 404 page not found
fatal: repository 'https://git.coding.net/u/...' not found
//解決方式
git remote rm origin
git remote add origin https://git.coding.net/.....git
分支沖突
//保存現(xiàn)在正編輯的狀態(tài)
git stash
//保存的列表
git stash list
//恢復(fù)原來保存的狀態(tài)
git stash pop