Coding 初級(jí)教程(一)——用GitHub的GUI客戶端對(duì)Coding的項(xiàng)目進(jìn)行管理
Coding 初級(jí)教程(二)——上傳已有項(xiàng)目
Coding.net簡(jiǎn)單使用指南
主要看上傳已有項(xiàng)目文章里面的:二、2345
常用的提交操作
- cd projectname //轉(zhuǎn)到項(xiàng)目文件夾下
- git status // 查看是否有修改或沖突的文件,如果有就執(zhí)行下面四個(gè)操作。
- git add . // 追蹤新文件,并放到暫存區(qū)
- git commit -m "first commit" //將自己文件放入本地倉(cāng)庫(kù)
- git pull origin branchName //從遠(yuǎn)程抓取內(nèi)容及分支到本地倉(cāng)庫(kù),(1、git會(huì)對(duì)比本地倉(cāng)庫(kù)的最新版本和pull下來的版本的沖突,然后解決沖突后在push。2、如果項(xiàng)目只有一個(gè)分支,可以用git pull。git pull在多分支情況下不建議使用)
- git push origin branchName // 將本地倉(cāng)庫(kù)同步到遠(yuǎn)端倉(cāng)庫(kù)(如果項(xiàng)目只有一個(gè)分支,可以用git push。git push在多分支情況下不建議使用)
- 注意: 有關(guān)git實(shí)質(zhì)的理解(問題答案有):https://segmentfault.com/q/1010000009549291?_ea=1982061
- 注意: 在git checkout branchName或者git push之前,必須先git status 查看是否有修改和沖突,必須先解決提交才可以。
把已開發(fā)代碼上傳到coding
1、拷貝地址找到新建遠(yuǎn)程倉(cāng)庫(kù)的地址并拷貝下來。(有關(guān)倉(cāng)庫(kù)地址的創(chuàng)建參考: Coding.net簡(jiǎn)單使用指南)git鏈接地址
2、克隆
打開 cmd(Win)或者終端(Mac),輸入如下命令。cd /WorkSpace // 找個(gè)放空項(xiàng)目的地方 git clone https://coding.net/yourusername/projectname.git //克隆 git clone后有以下3行特殊日志 Cloning into 'smart_home'...//正在下載遠(yuǎn)程庫(kù)到本地 Username for 'https://gitee.com': lovebyron//這個(gè)名字是碼云/coding的賬號(hào) Password for 'https://lovebyron@gitee.com': //碼云/coding的密碼3、換殼
換殼顧名思義,把自己原來項(xiàng)目的內(nèi)容放到克隆下來的空項(xiàng)目這個(gè)新殼中。
具體而言,把原來項(xiàng)目文件夾下的所有文件移動(dòng)到克隆下來的項(xiàng)目的目錄下(例子中即WorkSpace下的文件夾projectname中)。
4、將項(xiàng)目文件納入 git 版本管理并提交到遠(yuǎn)程倉(cāng)庫(kù)執(zhí)行下列命令: cd projectname //轉(zhuǎn)到項(xiàng)目文件夾下 git add . // 追蹤新文件,并放到暫存區(qū) git commit -m "first commit" //將文件納入本地倉(cāng)庫(kù) git push // 將本地倉(cāng)庫(kù)同步到遠(yuǎn)端倉(cāng)庫(kù)
分支管理
使用git命令把主分支代碼同步到本地以后:
要使用git命令創(chuàng)建本地分支,并把分支同步到碼云/coding。執(zhí)行下列命令: git checkout -b test2 //在本地倉(cāng)庫(kù)創(chuàng)建test2分支,并切換到test2分支 git push origin test2 // 把本地test2分支增加同步到遠(yuǎn)程倉(cāng)庫(kù),這個(gè)時(shí)候在碼云/coding就可以看到這個(gè)分支了。(執(zhí)行這行命令必須保證當(dāng)前項(xiàng)目在test2這個(gè)分支上) git branch -d test2 //將test2分支從本地倉(cāng)庫(kù)刪除(執(zhí)行這行命令必須保證當(dāng)前項(xiàng)目不在test2這個(gè)分支上)(git branch查看當(dāng)前項(xiàng)目有幾個(gè)分支;git checkout test2切換分支到test2分支上) git push origin :test2 // 把本地test2分支刪除同步到遠(yuǎn)程倉(cāng)庫(kù),這個(gè)時(shí)候在碼云/coding就可以看不到這個(gè)分支。實(shí)例一:
我復(fù)制標(biāo)準(zhǔn)代碼A,然后繼續(xù)開發(fā)的到代碼B。我現(xiàn)在想要把A和B都上傳到碼云/coding。(方便后期修改代碼A時(shí)候同步到代碼B,或者后期修改代碼B時(shí)候同步到代碼A)
- 把已開發(fā)的代碼上傳到coding,參考上面。
- git checkout -b test2
git push origin test2- 然后把文件夾里面的文件都刪除,只保留.git和README.md。
- git add . // 追蹤新文件,并放到暫存區(qū)
git commit -m "first commit" //將文件納入本地倉(cāng)庫(kù)
git push // 將本地倉(cāng)庫(kù)同步到遠(yuǎn)端倉(cāng)庫(kù)
分支切換管理- git branch //查看項(xiàng)目有幾個(gè)分支,當(dāng)前是哪個(gè)分支。
- git checkout branchName //切換到branchName分支上(如果切換分支后發(fā)現(xiàn)代碼和云端不一致,就要用git pull origin branchName來拉取云端代碼到本地。)
- 注意: 在git checkout branchName之前,必須先git status 查看是否有修改和沖突,必須先解決提交,然后才可以切換分支。
分支合并管理
- 合并分支A所有提交到分支B。
git checkout 分支B名字 git merge 分支A名字 git push
- 合并分支A某一個(gè)commit到分支B。
首先:在分支A通過git log,找到comit唯一ID(注意:英文狀態(tài)下按Q退出log文檔模式)git log(得到下面三行打?。?commit fe653ee4cb209f0295fa46d2395d297dcc1032c2 Author: byron <byron.liu@dalitek.com> Date: Wed Jul 4 15:34:19 2018 +0800然后切換分支B,在分支B執(zhí)行:git cherry-pick fe653ee4cb209f0295fa46d2395d297dcc1032c2
- 合并分支A某個(gè)文件到分支B。
方法1:
git checkout XingHeWan_GZ DalitekHotel/DalitekCode/webModular/lockFun//把XingHeWan_GZ分支上的lockFun文件夾直接復(fù)制到當(dāng)前分支項(xiàng)目上。(如果把lockFun改為lockFun.h,復(fù)制的就不是文件夾而是具體的一個(gè)文件)
注意: 1、項(xiàng)目文件名不能作為路徑的一部分,這個(gè)路徑是從文件名下一級(jí)開始的。 2、復(fù)制的東西如果當(dāng)前分支沒有,就直接復(fù)制,如果已經(jīng)存在,就直接替換。
方法2:git checkout --patch XingHeWan_GZ DalitekHotel/DalitekHotel-Prefix.pch diff --git b/DalitekHotel/DalitekHotel-Prefix.pch >a/DalitekHotel/DalitekHotel-Prefix.pch index a7ba287..5ed10df 100644 --- b/DalitekHotel/DalitekHotel-Prefix.pch +++ a/DalitekHotel/DalitekHotel-Prefix.pch @@ -81,22 +81,30 @@ #define DevFunType_Air @"02"http://空調(diào) #define DevFunType_Newwind @"03"http://新風(fēng) #define DevFunType_Floorheat @"04"http://地暖 +#define DevFunType_Lock @"05"http://門鎖 //設(shè)備類型 type": "05140001 +//窗簾 #define DevType_Curtain_1 @"0101"http://布簾 #define DevType_Curtain_2 @"0102"http://紗簾 +//空調(diào) #define DevType_Air_1 @"05140001" +//燈光 #define DevType_Light_XiDingDeng @"128"http://吸頂燈 只有開關(guān)按鈕 >開是1關(guān)是0 #define DevType_Light_DengDai @"1"http://燈帶 有開關(guān)按鈕和滑桿 開是255關(guān)是0 滑桿顯示還是0-100 -#define DevType_Newwind_1 @"05140001" //暫時(shí)沒有不做判斷 +//新風(fēng) +#define DevType_Newwind_1 @"0304" //正常新風(fēng):有pm2.5、風(fēng)速、開關(guān) 。。。。。 Apply this hunk to index and worktree [y,n,q,a,d,/,s,e,?]? ygit checkout --patch branchName filePath //把XingHeWan_GZ分支上的文件,和當(dāng)前分支上的文件對(duì)比,告訴你兩者的差別,詢問你是否進(jìn)行把這個(gè)改動(dòng)更新到當(dāng)前分支文件。
注意: 1、項(xiàng)目文件名不能作為路徑的一部分,這個(gè)路徑是從文件名下一級(jí)開始的。 2、復(fù)制的東西如果當(dāng)前分支沒有,就直接復(fù)制,如果已經(jīng)存在,就直接替換。
- 參考文章: Git合并指定文件到其它分支
撤銷未提交代碼管理
- 沒有add/已經(jīng)add沒有commit的情況:git checkout -f
- 已經(jīng)add并且commit的情況:(兩個(gè)命令才可以撤銷代碼)
git reset --soft HEAD^
git checkout -f
常用的git圖形化工具:GitKraken、SourceTree
GitKraken
下載地址:http://www.xue51.com/mac/6059.html(下載下來的.exe文件需要在window平臺(tái)執(zhí)行后才可以得到.dmg)
使用教程: GitKraken使用教程-基礎(chǔ)部分(1)
- 初始化倉(cāng)庫(kù)
git init - 添加文件到倉(cāng)庫(kù)
git add <file> 將文件放入暫存區(qū),可反復(fù)使用添加多個(gè)文件
git commit -m “注釋” - 查看倉(cāng)庫(kù)狀態(tài)
git status - 查看提交歷史
git log - 查看命令歷史
git reflog - 版本回退
git reset —hard HEAD^ 上個(gè)版本是HEAD,上上個(gè)版本是HEAD^
git reset --hard <指定版本commitID> - 丟棄修改(撤銷)
git checkout -- <file> - 撤銷暫存區(qū)的修改
git reset HEAD <file> - 刪除版本庫(kù)中的文件
git rm <file> - 從版本庫(kù)中恢復(fù)文件
git checkout -- <file> - 從遠(yuǎn)程倉(cāng)庫(kù)克隆
git clone - 關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)
git remote add origin git@server-name:path/repo-name.git - 取消遠(yuǎn)程關(guān)聯(lián)
git remote remove origin - 第一次推送所有內(nèi)容
git pull —rebase origin <版本號(hào)>
git push -u origin <版本號(hào)> - 提交推送
git push origin <版本號(hào)> - 將某一提交在另一個(gè)版本再次提交
git cherry-pick <commit id> - 創(chuàng)建并切換分支
git checkout -b <新版本號(hào)>
等價(jià)于
git branch <新版本號(hào)> 創(chuàng)建新版本
git checkout <新版本號(hào)> 切換版本 - 合并某版本到當(dāng)前版本
git merge <某版本> - 刪除版本
git branch -d <版本號(hào)> - 暫存修改文件
git stash list // 查看暫存
git stash // 暫存
git stash pop // 恢復(fù)暫存 - 查看遠(yuǎn)程庫(kù)信息
git remote -v - 從遠(yuǎn)程抓取內(nèi)容及分支
git pull - 在本地創(chuàng)建和遠(yuǎn)程對(duì)應(yīng)的分支
git checkout -b <版本號(hào)> origin/<版本號(hào)> // 本地和遠(yuǎn)程分支最好一致 - 從本地推送分支
git push origin <版本號(hào)> - 建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián)
git branch —set-upstream <版本號(hào)> origin/<版本號(hào)>
