创建远程仓库 Github

  • 首相在GitHub网站创建一个仓库:右上角加号➕,选择new repository

    

  • 然后创建编辑仓库:名称、说明、是否公开、语言、分支风格等信息。然后创建。

    

  • 复制仓库地址

    

远程仓库下拉到本地

  • 首先进入到工作目录文件夹:cd pywrod/GitProject/
  • 下拉仓库到本地的文件夹中:git clone https://github.com/guoyapeng/GitText.git
  • 进入到下拉下来的文件夹中:cd GitText
    • 查看文件夹内的内容:ls
    • 产看当前的工作状态:git status
      • On branch master
      • Your branch is up to date with 'origin/master'.
      • nothing to commit, working tree clean

本地创建py虚拟环境

  • 创建python开发虚拟环境:python3 -m venv .venv

    • 用python3内置的venv模块创建虚拟环境,python3.6以上才可以用
  • 激活刚刚创建的虚拟环境:source .venv/bin/activate
  • 此时git status查看状态并请求没有发生改变,说明git没有跟踪虚拟环境文件的创建
  • 这是因为我们虚拟环境文件被加载到了.gitignore文件中,加到此文件中的都会被忽略掉

本地仓库创建分支

  • 查看分支状态 :git branch

    • 此时在 *master主分支上,也仅有一个master分支
  • 创建 develop 分支:git branch develop
  • 再查分支状态 :git branch 
    • 此时有两个分支:*master 和 develop 两个分支
  • 切换到develop分支上:git checkout develop

创建远程develop分支

  • 添加修改到暂存区:git add .
  • 查看暂存区的状态:git status
    • On branch develop

    • nothing to commit, working tree clean

  • 提交本地修改及提示信息:git push
    • fatal: The current branch develop has no upstream branch.
    • To push the current branch and set the remote as upstream, use
    •   git push --set-upstream origin develop
  • 根据上面提示创建远程分支:git push --set-upstream origin develop
  • 查看远程的分支当前的状态:git branch -r
    • origin/HEAD -> origin/master
    • origin/develop 远程刚创建的develop分支
    • origin/master

安装开发需要的软件包

  • 安装开发py程序需要的软件包 :pip install django==1.11.18 gunicorn gevent redis==2.10.6 celery ipython requests
  • 冻结环境未来还原环境时使用 :pip freeze > requirment.txt 
    • 冻结安装的环境包文件名到requirement.txt文件中
    • pip install .... 注意:一旦下载了新的开发环境安装包就要从新冻结环境
    • pip freeze > requirment.txt
  • 查看当前状态:git status
    • On branch develop
    • Your branch is up to date with 'origin/develop'.
    • Untracked files:
    • (use "git add <file>..." to include in what will be committed)
      • requirment.txt
  • 重新下载还原之前冻结的环境 :pip install -r requirment.txt

同步冻结的安装包文件到远程库

  • 将新生成的文件添加到暂存区:git add .
  • 将新生成的文件添加到版本库:git commit -m "add new requirment.txt"
    • On branch develop

    • Your branch is ahead of 'origin/develop' by 1 commit.

    • (use "git push" to publish your local commits)

  • 将新生成的文件同步到远程库:git push
    •   Counting objects: 3, done.
    •   Delta compression using up to 8 threads.
    •   Compressing objects: 100% (3/3), done.
    •   Writing objects: 100% (3/3), 609 bytes | 609.00 KiB/s, done.
    •   Total 3 (delta 1), reused 0 (delta 0)
    •   remote: Resolving deltas: 100% (1/1), completed with 1 local object.
    •   To https://github.com/guoyapeng/GitText.git
    •     a35e042..4d86a48  develop -> develop

  自此,requirment.txt文件就同步到了远程仓库的develop分支上了

Django操作创建新项目

  • 新创建一个Django项目:django-admin startproject swiper
  • 将代码加到develop分支:
    • 将修改新增的文件或代码提交到暂存区:git add .
    • 将修改新增的文件或代码提交到版本库:git commit -m 'first commit'
    • 将修改新增的文件或代码推送到远端去:git push
    • 命令行的扩展工具,可以帮助提示在哪个分支下

  注意:项目组成员,只需要clone出来,创建自己的分支

git操作创建一个新的工作分支

  • 新建一个用户开发分支:git branch user
  • 切换到这个新用户分支:git checkout user
  • 进入到该django项目下:cd gittpp
  • 后创建一新的App应用,此时django会创建一个user子目录:django-admin startapp user
    • 在./gittpp/settings.py 文件中把user加入注册到INSTALLED_APPS
  • 把新的代码加入到新的工作分支中:
    • git add .
    • git commit -m "user first commit app"
  • 把本地新建的分支以及修改的内容一起推送到远端:git push --set-upstream origin user 
    • 或者同步分支后再同步修改的内容:git push

模块开发完测试ok后,提交分支

  模块开发完测试ok后,提交 pull request。在 git server 上操作

  

  • 进入 pull request 面板

  

  • 新建一个 pull request。选择要合并的分支和目的分支,然后点击Create pull request进行合并

    • 特别小心:源分支是你要合并的分支,目的分支是合并到的分支

  

  • 选择reviewer和选择合并执行人

    • reviewer 去检查代码,检查无误后,合并执行人去执行合并操作

  

  注意:如果模块分支不需要了,可以delete

  • 点击合并按钮后,并不会立刻就去合并代码信息。而是提交给别人去审查,审查没有问题后,再由指定的合并人去最后合并
  • 检查人的github账号上就会显示你提交合并的信息,然后去检查没问题后才去合并。

  

  

  

  注意:分支合并完后,会提示是否删除刚被合并的分支,如果不再用此分支的话,就可以删除掉

  注意:千万不要随意把代码合并到主分支上去,一般此合并任务由leader负责。

git使用的习惯:

  • 每天早上,至少要 pull 一次
  • 每天中间,可以频密的 add 和 commit
  • 一小阶段工作,就做一次 push
  • 如果与别人协作一个模块,要相对比较频密的 push
  • 有了 push 及时通知别人 pull
  • 禁忌:千万不要留着冲突不解决
  • 产生冲突的原因:远程的代码已经变更了,你还拿着以前从远端下拉下来的代码傻乎乎的一顿修改,然后再去提交到远端仓库,此时就会发生冲突;所以要及时的下拉远端仓库的代码
  • 如果下拉下来的代码和本地代码有冲突,就需要手动解决冲突,和之前提交代码的同事协商,删除不必要的冲突代码。

工具 --- Git使用的更多相关文章

  1. linux系统下使用流行的版本管理工具 Git

    前几天被版本管理困扰了好久,主要是因为 没法回到之前的版本,新版本又出了问题真的很尴尬. 终于决定使用目前网上很火的版本管理工具-------Git 历史啥的就不说了,说些有用的. 我用的是oschi ...

  2. 源代码管理工具-GIT

    源代码管理工具-GIT ---- 一. 掌握 - git 概述 1. git 简介? 什么是git? git是一款开源的分布式版本控制工具在世界上所有的分布式版本控制工具中,git是最快.最简单.最流 ...

  3. iOS核心笔记—源代码管理工具-GIT

    源代码管理工具-GIT 一. git 概述 1. git 简介? 什么是git? > git是一款开源的分布式版本控制工具 > 在世界上所有的分布式版本控制工具中,git是最快.最简单.最 ...

  4. 版本管理工具Git(1)带你认识git

    简介 本篇将带领大家认识,git.github,让大家对git有基本的认识:下面将持续更新几篇文章来介绍git,见git导航: 下一篇中将讲解git的安装及使用: Git系列导航 版本管理工具Git( ...

  5. 版本管理工具Git(2)git的安装及使用

    下载安装git 官方下载地址:https://git-scm.com/download/win 这里以windows为例,选择正确的版本: 验证是否安装成功,右键菜单中会出现如下菜单: Git工作流程 ...

  6. 版本控制工具——Git常用操作(上)

    本文由云+社区发表 作者:工程师小熊 摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点.现在准备开一个专题,专门来总结一下版本控制工具,让我们从git开 ...

  7. 版本管理工具Git(一)简要介绍

    版本管理工具不但可以备份而且还能记录版本,也就是同一个东西不同时期的状态同时可以跟踪追溯.版本管理工具由CVS.SVN.Git.GitHub. 最早的版本管理工具CVS,因为多人开发项目导致工作很难协 ...

  8. 版本控制工具 - Git

    版本控制工具 - Git 安装完成后,打开Git Bash,这是一个命令行工具,用于操作仓库和仓库的文件.你可以通过命令将已经存在的项目变成仓库,也可以重新创建一个新项目再通过命令将其变成仓库,还可以 ...

  9. 版本管理工具Git(2)git的使用

    上一篇带大家认识了Git,在本篇中将讲解Git的安装及使用: Git系列导航 版本管理工具Git(1)带你认识git 版本管理工具Git(2)git的安装及使用 版本管理工具Git(3)VS下如何使用 ...

  10. 痞子衡嵌入式:备受开源社区推崇的分布式版本控制工具(Git)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是分布式版本控制工具Git. 1.为什么需要版本控制系统? 单人软件项目开发过程,往往很多功能都是逐步增加的,在代码开发过程中,有的时候功 ...

随机推荐

  1. java中vector中add,addElement区别

    这两个方法最大的区别就是返回值不一样,在作用上基本没有区别. add是实现List接口重写的方法,返回值为boolean.addElement是Vector类中的特有方法,返回值是void.

  2. 五十六. playbook基础 、 playbook进阶

    1.playbook练习 安装Apache并修改监听端口为8080 修改ServerName配置,执行apachectl -t命令不报错 设置默认主页hello world 启动服务并设开机自启   ...

  3. [51Nod] 配对

    https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1737 求出树的重心,跑spfa #include <iostre ...

  4. wait系列

    转自 http://blog.csdn.net/todd911/article/details/15028511 1.wait函数和waitpid函数 当一个进程正常或异常终止时,内核就向其父进程发送 ...

  5. 基于ARM的SoC设计入门[转]

    原文:基于ARM的SoC设计入门 我们跳过所有对ARM介绍性的描述,直接进入工程师们最关心的问题.要设计一个基于ARM的SoC,我们首先要了解一个基于ARM的SoC的结构.图1是一个典型的SoC的结构 ...

  6. 推荐 | Vue 入门&进阶路线

    今儿跟大家聊聊 Vue . 不得不承认, Vue 越来越受欢迎了.对比 Angular 和 React,虽然三者都是非常优秀的前端框架,但从 GitHub 趋势看,Vue 已经排在第一位,达到了13万 ...

  7. 前端逼死强迫症系列之Html

    概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...

  8. webpack - 优化阻塞渲染的css

    随着浏览器的日新月异,网页的性能和速度越来越好,并且对于用户体验来说也越来越重要. 现在有很多优化页面的办法,比如:静态资源的合并和压缩,code splitting,DNS预读取等等. 本文介绍的是 ...

  9. StringUtils的isNotEmpty,isNotBlank方法的区别

    这两个用着用着老是混淆或者忘记,今天写一下做个笔记,对比下两个判断方法的区别 isNotEmpty: 判断某字符串是否非空,等于!isEmpty(String str),这里不能排除空格字符 Stri ...

  10. 设顺序表中的数据元素递增有序,试着写一算法,将x插入到顺序表上的适当位置上,以保持该表的有序性。

    原创,转载请注明出处.https://www.cnblogs.com/yangf428/p/11254370.html 天勤例题[2-1]: 设顺序表va中的数据元素递增有序.试写一算法,将x插入到顺 ...