一、什么是GIT?

  Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。

  GitHub、GitCafe、BitBucket和GitLab等是基于Git版本控制的远程文件托管平台。

  使用场景:

  • 无远程:在本地 .git 文件夹内维护历时文件
  • 有远程:在本地 .git 文件夹内维护历时文件,同时也将历时文件托管在远程仓库

  PS: 
      集中式:远程服务器保存所有版本,用户客户端有某个版本
      分布式:远程服务器保存所有版本,用户客户端有所有版本

  二、安装GIT

  参见:http://git-scm.com/

  PS: 注册GitHub、GitCafe、BitBucket和GitLab等账户,以便于将文件托管在远程。

  三、GIT的相关命令

git init   初始化  生成 .git 文件,用于保存git相关所有信息,如:每个版本

git status  查看状态

git add 文件名或.    '.'表示工作区被修改的所有内容    添加到暂存区。

git commit -m '对修改内容的描述信息'     从暂存区提交到分支。

配置用户信息:
git config --local user.name '用户名' git config --local user.email '邮箱地址' git ls-tree head 查看版本中所有文件 git ls-files -s 查看暂存区和分支中所有文件 git log 查看已生效的操作日志 git reflog 查看所有日志 git reset --hard 后接log里的指定随机字符串 回滚到指定位置 git reset --mix 后接reflog日志里开头的前7位 再回滚到之前指定的位置 git checkout 文件名 切换到指定文件 git stash 将当前已经做过的修改,保存到一个临时地方 git stash pop 临时地方内容重新放回工作区,恢复并删除最近一次保存的内容
出现冲突,手动解决:
"""
<<<<<<< Updated upstream
之前的代码1
之前的代码2
=======
之前的代码1
之前的代码2
开发直播功能到一半
>>>>>>> Stashed changes
手动解决结果: 之前的代码1
之前的代码2
开发直播功能到一半 """
git stash apply ‘名称’ 恢复指定名称的内容 git stash drop ‘名称’ 删除指定名称的内容 git stash list 查看所有临时空间里的所有内容 git stash clean 清空临时空间里的全部内容 master:只保留线上版本 dev: 保存所有开发版本 git branch dev 创建分支(会copy当前分支,注意当前分支的位置) git checkout dev 进入dev分支 git checkout master 切换到master分支 git merge dev 合并dev分支,注意必须在master分支上合并 git branch -d dev 删除dev分支

GIT 常用命令

git remote add origin https://github.com/xxx/xxx.git   添加远程连接并取别名 origin

git push origin master   将本地master分支推送至远程仓库

git clone https://github.com/xxx/xxx.git   从远程仓库克隆到本地目录
里面有config文件,自动配置连接地址 git branch dev origin/dev 克隆后只有master分支,同步其他分支 git fetch origin dev 从远程仓库获取最新内容到本地dev分支 git pull origin dev 从远程仓库获取最新内容到本地dev分支的工作区里的原内容区 “劲儿大”

GitHub 常用命令

  详情见图:

分支合并

命令详解

  四、fork

  fork,就是别人有一个开源项目,你发现里面有bug,可以fork别人的项目,进行修改。说直白一点,就是可以克隆一份到本地。

  当你下载到本地,进行修改完成以后,你push到你自己的GitHub,然后你希望这个项目的开发者,采纳你修复的bug。你可以通过new pull request这个按钮向开发者发送你的描述信息。开发者认同你的代码的话,就有可能合并你的代码了。

  五、应用场景

  开发新功能共有两种方式:

  • stash
  • 分布式

  未完待续...

  六、其他

  1、关于登录

  在连接GitHub的时候,是需要登录的,登录验证有两种方式:一、https://xxx.com 通过用户名和密码的方式;二、通过SSH连接,我们在git命令行利用ssh-keygen.exe来生成公钥和私钥,公钥放在id_rsa.pub里面。拷贝里面的字符串,放在GitHub上个人设置里面有SSH and GPG keys里给设置上就齐活了。下次只要是SSH连接就不用管登录验证的问题了,公钥和私钥会自动匹配验证。

  2、忽略文件

  我们知道pycharm在生成新的project的时候,都会生成一个.pyc后缀结尾的文件,而这个文件基本上没什么用,所以,我们在文件上传的时候,就可以过滤掉一些没用的文件,怎么过滤呢,我们在git命令行vim .gitignore 进入后,在这个里面添加上我们需要过滤掉的文件名,如:*.pyc   a.py 等,这样在执行git status的时候,就会自动过滤掉文件里匹配的相关文件了。再文件上传的时候,就不会上传上去了,就完成了忽略文件的作用。

  友情链接:请猛戳这里

最新文章

  1. LinuxMM--MemoryHierarchy
  2. 开源一个基于天天团购的团购app
  3. hdu 4417 Super Mario 离线线段树
  4. “Cache-control”常见的取值有private、no-cache、max-age、must-revalidate等
  5. nyoj 56 阶乘中素数的个数
  6. obj.onclick=fnClick与obj.onclick=fnClick()的区别
  7. PHP 继承,组合,单模式,GUID,等混合实例
  8. lua语法 - 基础篇
  9. 全易通人事考勤工资验厂管理系统软件创建连接SQL2000数据库的操作方法和说明
  10. Windows 7样式地址栏(Address Bar)控件实现
  11. destoon 默认广告位代码
  12. python入门(11)条件判断和循环
  13. Django学习笔记之视图高级-类视图
  14. CSS选择器:子选择符号
  15. 饮冰三年-人工智能-linux-01通过VM虚拟机安装contes系统
  16. ado.net调用带参数的存储过程
  17. 面向连接的tcp 编程
  18. linux源码Makefile详解(完整)
  19. Java语法基础学习DaySix
  20. git push失败

热门文章

  1. 判断Python输入是否为数字、字符(包括正则表达式)
  2. Python 中的比较:is 与 ==
  3. pycharm 使用教程
  4. zabbix系列 ~ 如何更好的利用mysql监控
  5. Navicat for Mysql连接mysql数据库时出现 2003-Can&#39;t connect to MySql server on &#39;localhost&#39;(10061)
  6. SpringSecurityOAuth使用JWT Token
  7. C++设计模式之工厂模式(1)
  8. delphi 的插件机制与自动更新
  9. unigui 在单据中,某输入为必填项的 JS代码
  10. linux中bashrc与profile的区别