常用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命令_第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://[email protected]': //码云/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 
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 将文件放入暂存区,可反复使用添加多个文件
    git commit -m “注释”
  • 查看仓库状态
    git status
  • 查看提交历史
    git log
  • 查看命令历史
    git reflog
  • 版本回退
    git reset —hard HEAD^ 上个版本是HEAD,上上个版本是HEAD^
    git reset --hard <指定版本commitID>
  • 丢弃修改(撤销)
    git checkout --
  • 撤销暂存区的修改
    git reset HEAD
  • 删除版本库中的文件
    git rm
  • 从版本库中恢复文件
    git checkout --
  • 从远程仓库克隆
    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
  • 创建并切换分支
    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/<版本号>

你可能感兴趣的:(常用Git命令)