首页 > 编程语言 > 详细

Python第十周 学习笔记(1)_Git

时间:2018-05-27 11:58:38      阅读:224      评论:0      收藏:0      [点我收藏+]
git

技术分享图片

  • Repository 仓库、版本库

    • git初始化后,会在当前目录生成一个.git目录,也就是版本库
  • Workspace 工作区

    • .git所在的目录就是工作区,一般是项目的根目录
  • index 索引

    • 介于工作区和版本库之间,暂存修改的
  • remote 远程版本库
    • 网络上的另一个版本库,可以和本地交互

初始化

git init

添加文件

git add index.htm
  • 把文件的当前变化增加到索引中,
  • 此时文件还可继续修改或添加新的文件,后也要用add提交到索引中
  • 当前目录批量添加
    git add .
    • 递归添加当前目录及其子目录所有文件
    • 只要是目录,就会递归添加该目录下的文件和子目录

查看状态

git status

技术分享图片

git文件分类

  • tracked

    • 已经加入版本库的文件
  • untracked

    • 未加入到版本库的文件
  • ignored

    • 忽略的,git不再关注的文件
  • .gitignore
    • 此文件中的文件名、目录或格式,符合的文件,git会忽略

提交代码

git commit -m "1st commit"
  • 提交更改到版本库

  • -m

    • 填写本次日志消息
  • git的提交分为两个步骤:

    • 暂存变更:add作用是把新文件或文件新的改动添加到一个暂存区stage,也就是加入到index中

    • 提交变更:commit提交的时暂存区的改动,而不是物理文件目前的改动,提交到当前分支,默认时master分支
  • git commit index.htm

    • 省略add 直接提交
  • git commit -a
    • 把所有跟踪的文件的改动自动暂存,然后commit

增补

git commit --amend
  • 把补充的内容增补到上一次commit,不生成新的commit

查看日志

git log

查看差异

git diff
  • 查看被跟踪文件未暂存的修改,比较暂存区和工作区
git diff --cached
  • 查看被跟踪文件暂存的修改,比较暂存区和上一次commit的差异
git diff HEAD
  • 查看被跟踪文件,比较工作区和上一次commit的差异,HEAD指代最后一次commit

  • HEAD
    • 指代最后一次commit
  • HEAD^
    • 指代上一次提交
  • HEAD^^
    • 指代上上次提交
  • HEAD~n
    • 上n次提交

检出与重置

git checkout
  • 列出暂存区可以被检出的文件
git checkout file
  • 从暂存区检出到工作区,即覆盖工作区文件,可指定检出的文件。不清除stage
git checkout commit file
  • 检出某个commit的指定文件到暂存区和工作区
git checkout .
  • 检出暂存区的所有文件到工作区
git reset
  • 列出将被reset的文件
git reset file
  • 重置文件的暂存区,和上一次commit一致,工作去不影响
git reset --hard
  • 重置暂存区与工作区,与上一次commit保持一致
git reflog
  • 显示commit的信息,只要HEAD发生变化,就可以看到
git reset commit
  • 重置当前分支的HEAD为指定commit,同时重置暂存区,工作区不变
git reset --hard [commit]
  • 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区与指定commit一致

reset操作要慎重

移动和删除

git mv src dest
  • 直接把改名的改动放入暂存区
git rm file
  • 会同时在版本库和工作目录中删除文件
git rm --cached file
  • 将文件从暂存转成未暂存,从版本库中删除,但不删除工作目录的该文件,即文件恢复成不追踪状态

以上三个命令执行commit后才真正改动

push到服务器

  • 配置本地用户名和邮箱
git config --global user.name "lptnyy"
git config --global user.email "lptnyy@magedu.com"

内容存储在 ~/.gitconfig

关联远程版本库

git remote add origin http://name@IP:Port/name/gittest.git\
  • 习惯将远程版本库命名为origin,信息保存在.git/config的[remote "origin"]中
  • .git/config是版本库级别设置文件,具有最高优先级

推送数据

git push -u origin master
  • 第一次推送加-u,之后可不加

密钥登陆

ssh-keygen -t rsa -C "lptnyy@magedu.com"
  • 生成的公钥放到远程库选项中

克隆

  • 复制远程库的ssh地址
git clone git@IP:name/gittest.git

Pycharm中使用git

  • 初次使用没有project或close project后弹出此页面 选择git
    技术分享图片

技术分享图片

项目开发

git stash
  • 暂时存储最后一次提交后的变化,放入栈中
git stash pop
  • 从栈中取出刚才保存的变化

  • 开发中,当前手中的工作没有完成,需要中断当前工作来完成其他请求,例如修复bug
  • 已完成的工作内容提交不合适,可能还要需要大量的调整,此时就需要stash存储未完成的工作

分支branch

  • 至少一个分支,称为主分支或主干分支Master,默认在主分支开发
    技术分享图片

    创建分支

  • 分支名一般字符采用英文字母和-
    技术分享图片
  • 点击Pycharm最下面的version control
  • log页内选择要分支的点右键new branch

合并分支

  • 切换回master,检出master
  • 点击merge changes,选择no fast forward开始合并

fast forward合并

技术分享图片

gitflow工作流

  • 最佳实践

    • 使用Git一般至少两个分支:master、develop
  • master,生产环境都来主干分支上拿数据部署,也可使用钩子自动完成
  • develop,开发分支,开发人员都是检出这个分支开发

  • 辅助分支
    • feature分支,具体功能开发分支,只与develop分支交互
    • release分支,发布版本
    • hotfix分支,紧急bug修复的版本,最后需要合并到develop和master中

技术分享图片

Python第十周 学习笔记(1)_Git

原文:http://blog.51cto.com/11281400/2120719

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!