常用Git命令

作者: 顺情风 | 来源:发表于2018-07-14 16:30 被阅读2次

    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某一个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/<版本号>

    相关文章

      网友评论

        本文标题:常用Git命令

        本文链接:https://www.haomeiwen.com/subject/irocjftx.html