常用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
git链接地址 找到新建远程仓库的地址并拷贝下来。(有关仓库地址的创建参考: Coding.net简单使用指南)
1、拷贝地址
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某一个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、复制的东西如果当前分支没有,就直接复制,如果已经存在,就直接替换。
- 参考文章: Git合并指定文件到其它分支
撤销未提交代码管理
- 没有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/<版本号>