常用Git命令

Coding 初级教程(一)——用GitHub的GUI客户端对Coding的项目进行管理
Coding 初级教程(二)——上传已有项目
Coding.net简单使用指南
主要看上传已有项目文章里面的:二、2345

常用的提交操作

  • cd projectname //转到项目文件夹下
  • git status // 查看是否有修改或冲突的文件,如果有就执行下面四个操作。
  • git add . // 追踪新文件,并放到暂存区
  • git commit -m "first commit" //将自己文件放入本地仓库
  • git pull origin branchName //从远程抓取内容及分支到本地仓库,(1、git会对比本地仓库的最新版本和pull下来的版本的冲突,然后解决冲突后在push。2、如果项目只有一个分支,可以用git pull。git pull在多分支情况下不建议使用)
  • git push origin branchName // 将本地仓库同步到远端仓库(如果项目只有一个分支,可以用git push。git push在多分支情况下不建议使用)
  • 注意: 有关git实质的理解(问题答案有):https://segmentfault.com/q/1010000009549291?_ea=1982061
  • 注意: 在git checkout branchName或者git push之前,必须先git status 查看是否有修改和冲突,必须先解决提交才可以。

把已开发代码上传到coding
1、拷贝地址

git链接地址
找到新建远程仓库的地址并拷贝下来。(有关仓库地址的创建参考: Coding.net简单使用指南
2、克隆
打开 cmd(Win)或者终端(Mac),输入如下命令。

cd /WorkSpace // 找个放空项目的地方
git clone https://coding.net/yourusername/projectname.git //克隆
git clone后有以下3行特殊日志
Cloning into 'smart_home'...//正在下载远程库到本地
Username for 'https://gitee.com': lovebyron//这个名字是码云/coding的账号
Password for 'https://lovebyron@gitee.com': //码云/coding的密码

3、换壳
换壳顾名思义,把自己原来项目的内容放到克隆下来的空项目这个新壳中。
具体而言,把原来项目文件夹下的所有文件移动到克隆下来的项目的目录下(例子中即WorkSpace下的文件夹 projectname中)。
4、将项目文件纳入 git 版本管理并提交到远程仓库

执行下列命令:
cd projectname   //转到项目文件夹下
git add .       // 追踪新文件,并放到暂存区
git commit -m "first commit" //将文件纳入本地仓库
git push  // 将本地仓库同步到远端仓库

分支管理
使用git命令把主分支代码同步到本地以后:
要使用git命令创建本地分支,并把分支同步到码云/coding。

执行下列命令:
git checkout -b test2   //在本地仓库创建test2分支,并切换到test2分支
git push origin test2    // 把本地test2分支增加同步到远程仓库,这个时候在码云/coding就可以看到这个分支了。(执行这行命令必须保证当前项目在test2这个分支上)
git branch -d test2 //将test2分支从本地仓库删除(执行这行命令必须保证当前项目不在test2这个分支上)(git branch查看当前项目有几个分支;git checkout test2切换分支到test2分支上)
git push origin :test2  // 把本地test2分支删除同步到远程仓库,这个时候在码云/coding就可以看不到这个分支。

实例一:
我复制标准代码A,然后继续开发的到代码B。我现在想要把A和B都上传到码云/coding。(方便后期修改代码A时候同步到代码B,或者后期修改代码B时候同步到代码A)

  • 把已开发的代码上传到coding,参考上面。
  • git checkout -b test2
    git push origin test2
  • 然后把文件夹里面的文件都删除,只保留.git和README.md。
  • git add . // 追踪新文件,并放到暂存区
    git commit -m "first commit" //将文件纳入本地仓库
    git push // 将本地仓库同步到远端仓库
    分支切换管理
  • git branch //查看项目有几个分支,当前是哪个分支。
  • git checkout branchName //切换到branchName分支上(如果切换分支后发现代码和云端不一致,就要用git pull origin branchName来拉取云端代码到本地。)
  • 注意: 在git checkout branchName之前,必须先git status 查看是否有修改和冲突,必须先解决提交,然后才可以切换分支。

分支合并管理

  • 合并分支A所有提交到分支B。
git checkout 分支B名字
git merge 分支A名字
git push
  • 合并分支A某一个commit到分支B。
    首先:在分支A通过git log,找到comit唯一ID(注意:英文状态下按Q退出log文档模式)
git log(得到下面三行打印)
commit fe653ee4cb209f0295fa46d2395d297dcc1032c2
Author: byron <byron.liu@dalitek.com>
Date:   Wed Jul 4 15:34:19 2018 +0800

然后切换分支B,在分支B执行:git cherry-pick fe653ee4cb209f0295fa46d2395d297dcc1032c2

  • 合并分支A某个文件到分支B。
    方法1:
    git checkout XingHeWan_GZ DalitekHotel/DalitekCode/webModular/lockFun//把XingHeWan_GZ分支上的lockFun文件夹直接复制到当前分支项目上。(如果把lockFun改为lockFun.h,复制的就不是文件夹而是具体的一个文件)
    注意: 1、项目文件名不能作为路径的一部分,这个路径是从文件名下一级开始的。 2、复制的东西如果当前分支没有,就直接复制,如果已经存在,就直接替换。
    方法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"//空调
#define DevFunType_Newwind @"03"//新风
#define DevFunType_Floorheat @"04"//地暖
+#define DevFunType_Lock @"05"//门锁
//设备类型  type": "05140001
+//窗帘
#define DevType_Curtain_1 @"0101"//布帘
#define DevType_Curtain_2 @"0102"//纱帘
+//空调
#define DevType_Air_1 @"05140001"
+//灯光
#define DevType_Light_XiDingDeng @"128"//吸顶灯 只有开关按钮 >开是1关是0
#define DevType_Light_DengDai @"1"//灯带 有开关按钮和滑杆 开是255关是0  滑杆显示还是0-100
-#define DevType_Newwind_1 @"05140001" //暂时没有不做判断
+//新风
+#define DevType_Newwind_1 @"0304" //正常新风:有pm2.5、风速、开关
。。。。。
Apply this hunk to index and worktree [y,n,q,a,d,/,s,e,?]? y

git checkout --patch branchName filePath //把XingHeWan_GZ分支上的文件,和当前分支上的文件对比,告诉你两者的差别,询问你是否进行把这个改动更新到当前分支文件。
注意: 1、项目文件名不能作为路径的一部分,这个路径是从文件名下一级开始的。 2、复制的东西如果当前分支没有,就直接复制,如果已经存在,就直接替换。

撤销未提交代码管理

  • 没有add/已经add没有commit的情况:git checkout -f
  • 已经add并且commit的情况:(两个命令才可以撤销代码)
    git reset --soft HEAD^
    git checkout -f

常用的git图形化工具:GitKraken、SourceTree
GitKraken
下载地址:http://www.xue51.com/mac/6059.html(下载下来的.exe文件需要在window平台执行后才可以得到.dmg)
使用教程: GitKraken使用教程-基础部分(1)

  • 初始化仓库
    git init
  • 添加文件到仓库
    git add <file> 将文件放入暂存区,可反复使用添加多个文件
    git commit -m “注释”
  • 查看仓库状态
    git status
  • 查看提交历史
    git log
  • 查看命令历史
    git reflog
  • 版本回退
    git reset —hard HEAD^ 上个版本是HEAD,上上个版本是HEAD^
    git reset --hard <指定版本commitID>
  • 丢弃修改(撤销)
    git checkout -- <file>
  • 撤销暂存区的修改
    git reset HEAD <file>
  • 删除版本库中的文件
    git rm <file>
  • 从版本库中恢复文件
    git checkout -- <file>
  • 从远程仓库克隆
    git clone
  • 关联远程仓库
    git remote add origin git@server-name:path/repo-name.git
  • 取消远程关联
    git remote remove origin
  • 第一次推送所有内容
    git pull —rebase origin <版本号>
    git push -u origin <版本号>
  • 提交推送
    git push origin <版本号>
  • 将某一提交在另一个版本再次提交
    git cherry-pick <commit id>
  • 创建并切换分支
    git checkout -b <新版本号>
    等价于
    git branch <新版本号> 创建新版本
    git checkout <新版本号> 切换版本
  • 合并某版本到当前版本
    git merge <某版本>
  • 删除版本
    git branch -d <版本号>
  • 暂存修改文件
    git stash list // 查看暂存
    git stash // 暂存
    git stash pop // 恢复暂存
  • 查看远程库信息
    git remote -v
  • 从远程抓取内容及分支
    git pull
  • 在本地创建和远程对应的分支
    git checkout -b <版本号> origin/<版本号> // 本地和远程分支最好一致
  • 从本地推送分支
    git push origin <版本号>
  • 建立本地分支和远程分支的关联
    git branch —set-upstream <版本号> origin/<版本号>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容

  • 下面Git 命令清单部分来自廖雪峰,部份来自其他各处收集。几个专用名词的译名如下。 Workspace:工作区 I...
    乱尘阅读 280评论 0 1
  • git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git b...
    猿万阅读 5,053评论 1 45
  • git 1. git init 使用git init命令,把一个目录变成Git可以管理的仓库。创建成功,会提示创建...
    csmijo阅读 290评论 0 0
  • 作为一个打算跟代码耗一辈子的有志青年,怎能不学习git ** 下面介绍下 git常用命令 **git init ...
    iOS_愛OS阅读 340评论 0 2
  • 我都不知道该从何说起,我叔叔要我爷爷来深圳,住他家,可是他老婆,我婶婶,她不喜欢我爷爷,跟我说了三次,她讨厌我爷爷...
    一路李花开阅读 422评论 0 0