Git

作者: 午夜阳光5021 | 来源:发表于2018-08-13 18:04 被阅读125次

    摘要: Git是一款源代码管理工具(版本控制工具)

    git安装

    初始化仓库
    • git init
    • 想在哪个目录创建.git目录,就是哪个目录打开工具然后写命令
    • 一般是在项目的根目录执行这个命令
    自报家门喽
    • 配置用户名 : git config --global user.name "testName"
    • 配置邮箱 : git config --global user.email "test@sina.com"
    • 查看配置信息: git config --list
    代码提交到仓库
    1.先把代码添加到暂存区(就相当于放到门卫)
    • 命令:git add 文件路径
    • 示例:git add ./reademe.md
    • 批量添加:git add.或者git add ./
    2.把暂存区文件添加到本地仓库
    • 命令: git commit -m "注释,随便写点"
    • 示例: git commit -m "我们添加了一个新的功能"
    • -m表示指定一个字符串,作为提交的说明(相当于注释);
    3.懒人合并add 与commit 命令
    • git commit -a -m "这是使用合并添加与提交的操作"
    • -a 参数表明把所有修改后的文件一起添加到暂存区,只是对修改后的文件有效,对于新添加的文件没有作用
    查看工作区状态
    • 命令:git status
    添加忽略文件
    • 忽略不需要提交的文件

    在.git文件夹所在目录新建一个名为.gitignore的文件,在这个文件中写上需要被忽略的文件的路径。

    • 举例: /css/index.css
    • 注意一定要换行,一行一个
    : /css/*.css
    : /a.html
    
    查看日志
    • 命令:git log,可以查看每一次提交的日志
    • 命令:git log --oneline 表示使用简洁的形式输出提交日志
    版本回退
    • 命令:git reset --hard Head~0

      • 将代码回退到上一次提交时的状态
    • 命令:git reset --hard Head~1

      • 将代码回退到上上一次提交时的状
    • 命令:git reset --hard Head~2

      • 将代码回退到上上上一次提交时的状态
    • 命令:git reset --hard 版本号

      • 通过每次提交时生成的版本号来回退版本
    • 通过git reflog命令可以查看之前所有版本切换的操作记录,可以通过这个命令得到的版本号回退到指定的版本

    比对文件差异
    • 命令: git diff
      • 用来比较工作区内容与最近一次提交的内容的区别
      • 如果暂存区没有文件,就会将工作与代码与最近一次提交对比
    • 命令:git diff --cached 比较暂存区的文件和仓库中文件的区别
    • 对比之前某两次提交的文件的差异
      • 命令:git diff [版本号1] [版本号2] [想比较的文件路径]
    创建分支
    • 命令:git branch [分支名]
      • 创建一个新分支
    • 命令:git branch
      • 查看当前所有分支
    切换分支
    • 命令:git checkout [分支名]
      • 切换分支后可以在切换后的分支中进行正常的操作
    • 命令:git checkout -b [分支名]
      • 创建并切换分支
    合并分支
    • 命令:git merge [分支名]
      • git会将指定的分支合并到当前分支
    删除分支
    • 命令:git branch -d [分支名]
      • 删除指定分支,-d参数表示要执行删除操作
    git提交中的冲突
    • 如果git不能自动合并分支,就会有冲突,我们需要手动解决冲突,然后再次提交

    github

    github与git
    • git 版本管理工具
    • github 就是一个网站,只是这个网站提供git服务器的功能
    上传代码到git服务器(push)
    • 命令:git push [远程服务器地址] [远程服务器的分支]
    • 示例:git push https://github.com/huoqishi/test002.git master
    • 上传时可以使用一些简化的命令
    • 将远程服务器地址写成变量的形式
      git remote add [变量名] [远程服务器地址]
    • 示例:git remote add origin https://github.com/huoqishi/test002.git
      这样之后就可以直接使用origin来代替git push 后面写的地址了
      git push origin master
      还可以尽一步简化
      push时加上-u参数,就会默认建立本地当前分支与远程指定分支的关联,下一次push时就不需要输入分支名了git push origin

    Git 中 SSH key 生成

    • 创建SSH Key。在windows下查看[c盘->用户->自己的用户名->.ssh]下是否有id_rsaid_rsa.pub文件,如果没有需要手动生成。
      打开git bash
    $ ssh-keygen -t rsa -C "youremail@example.com"
    
    • 密钥类型用 -t 选项指定,默认生成用于SSH-2的RSA密钥
    • 同时在密钥中有一个注释字段,用-C来指定所指定的注释,可以方便用户标识这个密钥,指出密钥的用途或其他有用的信息。所以在这里输入自己的邮箱或者其他都行。
    • 输入完毕后程序同时要求输入一个密语字符串(passphrase),空表示没有密语。接着会让输入2次口令(password),空表示没有口令。3次回车即可完成当前步骤,此时[c盘>用户>自己的用户名>.ssh]目录下已经生成好了。

    把分支新版本合并到master版本中

    • 除了一直写的代码有三个分支(master,update,test),需要在新建一个文件夹,clone主分支,新文件夹本地没有其他分支,现在要在新文件夹有update分支并合并到master上
    • 之所以有这样奇怪的需求,时之前主代码提交测试了都没问题,要发版本打Tag之前,我有改了几行很小的代码,他们不让我用这个,可是又想让我保留改的代码,所以让我新建文件夹来搞,哎
    • 把源码clone到本地库中。
      git clone my_git_site
    • 在本地新建一个与远程的版本相同(被合并的版本)的update分支
      git checkout -b update origin/update
    • 返回到master版本
      git checkout master
    • 把本地的update合并到master
      git merge update
    • 把本地的master同步到远程
      git push origin master
    • 不需远程的版本了,删除

    相关文章

      网友评论

          本文标题:Git

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