Git

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

git安装

初始化仓库
  • git init
  • 想在哪个目录创建.git目录,就是哪个目录打开工具然后写命令
  • 一般是在项目的根目录执行这个命令
自报家门喽
  • 配置用户名 : git config --global user.name "testName"
  • 配置邮箱 : git config --global user.email "[email protected]"
  • 查看配置信息: 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 "[email protected]"
  • 密钥类型用 -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)