常用Git命令

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、拷貝地址

git鏈接地址
找到新建遠(yuǎn)程倉(cāng)庫(kù)的地址并拷貝下來。(有關(guān)倉(cāng)庫(kù)地址的創(chuàng)建參考: Coding.net簡(jiǎn)單使用指南
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,?]? y

git 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)存在,就直接替換。

撤銷未提交代碼管理

  • 沒有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)>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 下面Git 命令清單部分來自廖雪峰,部份來自其他各處收集。幾個(gè)專用名詞的譯名如下。 Workspace:工作區(qū) I...
    亂塵閱讀 399評(píng)論 0 1
  • git branch 查看本地所有分支 git status 查看當(dāng)前狀態(tài) git commit 提交 git b...
    猿萬閱讀 5,398評(píng)論 1 45
  • git 1. git init 使用git init命令,把一個(gè)目錄變成Git可以管理的倉(cāng)庫(kù)。創(chuàng)建成功,會(huì)提示創(chuàng)建...
    csmijo閱讀 388評(píng)論 0 0
  • 作為一個(gè)打算跟代碼耗一輩子的有志青年,怎能不學(xué)習(xí)git ** 下面介紹下 git常用命令 **git init ...
    iOS_愛OS閱讀 387評(píng)論 0 2
  • 我都不知道該從何說起,我叔叔要我爺爺來深圳,住他家,可是他老婆,我嬸嬸,她不喜歡我爺爺,跟我說了三次,她討厭我爺爺...
    一路李花開閱讀 467評(píng)論 0 0

友情鏈接更多精彩內(nèi)容