(4) 提交分支

提交分支命令 : 将本地的分支提交到 GitHub中;

  1. git push origin experiment

(5) 分支合并移除

合并分支命令 : 合并分支之后, 分支中有的文件在 主分支中也会显示, 相当于将branch1 分支中的文件拷贝了一份到master分支中;

  1. git merge branch1

合并结果 :

  1. Updating f1bb97a..7f5785e
  2. Fast-forward
  3. description_branch1.txt | 0
  4. 1 file changed, 0 insertions(+), 0 deletions(-)
  5. create mode 100644 description_branch1.txt

.

(6) 删除分支

删除分支命令 :

  1. git branch -d branch1

强制删除分支命令 : 如果branch1 分支还没有被合并的话, Git是不允许删除这个分支的, 此时要想删除该分支, 就只能使用下面的命令强制删除该分支 :

  1. git branch -D branch1

4. Git工作流程

(1) 两种工作流程

协作开发工作流程 : 这种情况是最复杂的情况, 多人团队共同开发一个项目;

-- 与远程仓库同步 : git pull ;

-- 修改文件 : 添加 删除 修改文件;

-- 查看变更 : git status ;

-- 载入变更 :添加文件, 先使用git add fileName, 在使用 git commit -m 'note' 载入变更; 如果是删除 修改文件, 直接使用 git commit -m 'note' 提交;

-- 重复 : 重复执行 修改文件 查看变更 载入变更 提交载入动作;

-- 上传 : 使用 git push 命令将项目源码提交带GitHub中去;

单独开发工作流程 : 如果是个人独立开发, 仅追踪本地文件变更, 就不需要提交到服务器上, 因为Git是分布式的;

-- 修改文件 :

-- 提交变更 :

-- 重复 :

(2) 简单示例

1> 独立开发示例

该示例不会上传, 仅在本地进行操作;

从GitHub中检出项目源码 : 注意, 检出的源码是根目录源码, 我们在总仓库的根目录检出即可,不同再为项目创建目录;

  1. git clone git@github.com:han1202012/AndroidPictureViewer.git

-- 检出克隆结果 :

  1. Cloning into 'AndroidPictureViewer'...
  2. remote: Counting objects: 86, done.
  3. remote: Compressing objects: 100% (62/62), done.
  4. remote: Total 86 (delta 3), reused 86 (delta 3)
  5. Receiving objects: 100% (86/86), 1.67 MiB | 109.00 KiB/s, done.
  6. Resolving deltas: 100% (3/3), done.
  7. Checking connectivity... done.

删除bin和gen目录 : 这两个目录是Android工程编译产生的临时文件, 没有必要上传到GitHub中去;

  1. rm -rf bin gen

-- 查看删除结果状态 :

  1. git status

-- 结果 :

  1. On branch master
  2. Your branch is up-to-date with 'origin/master'.
  3. Changes not staged for commit:
  4. (use "git add/rm <file>..." to update what will be committed)
  5. (use "git checkout -- <file>..." to discard changes in working directory)
  6. deleted:    bin/AndroidManifest.xml
  7. deleted:    bin/ImageView_Test.apk
  8. deleted:    bin/classes.dex
  9. deleted:    bin/res/crunch/drawable-xxhdpi/ic_launcher.png
  10. deleted:    bin/resources.ap_
  11. deleted:    gen/shuliang/han/imageview_test/BuildConfig.java
  12. deleted:    gen/shuliang/han/imageview_test/R.java

提交缓存 :

  1. git commit -a

-- 提交结果 :

  1. [master e4377ba] delete bin and gen directory.
  2. 28 files changed, 2 insertions(+), 110 deletions(-)
  3. create mode 100644 .gitignore
  4. delete mode 100644 bin/AndroidManifest.xml
  5. delete mode 100644 bin/ImageView_Test.apk
  6. delete mode 100644 bin/classes.dex
  7. delete mode 100644 bin/resources.ap_
  8. delete mode 100644 gen/shuliang/han/imageview_test/BuildConfig.java
  9. delete mode 100644 gen/shuliang/han/imageview_test/R.java

2> 协作开发示例

与远程仓库同步 :

  1. git pull

-- 如果其他人没有提交项目到GitHub上, 就会出现下面结果 :

  1. Already up-to-date.

修改文件后查看变更 :

  1. git status

-- 如果没有变更会出现下面情况 :

  1. On branch master
  2. Your branch is ahead of 'origin/master' by 1 commit.
  3. (use "git push" to publish your local commits)
  4. nothing to commit, working directory clean

载入变更 : 如果有变更, 那么使用命令载入变更. 使用 git commit -a 或者 git add 命令;

-- 添加文件 : 先使用 git add 文件名 来添加文件到缓存, 之后使用 git commit -m '' 命令提交代码到本地缓存;

-- 删除改变文件 : 直接使用 git commit -m '', 提交删除 或则 改变 到本地缓存;

提交项目源码到服务器 :

  1. git push

-- 提交源码结果 :

  1. warning: push.default is unset; its implicit value is changing in
  2. Git 2.0 from 'matching' to 'simple'. To squelch this message
  3. and maintain the current behavior after the default changes, use:
  4. git config --global push.default matching
  5. To squelch this message and adopt the new behavior now, use:
  6. git config --global push.default simple
  7. See 'git help config' and search for 'push.default' for further information.
  8. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
  9. 'current' instead of 'simple' if you sometimes use older versions of Git)
  10. Counting objects: 4, done.
  11. Delta compression using up to 2 threads.
  12. Compressing objects: 100% (2/2), done.
  13. Writing objects: 100% (3/3), 292 bytes | 0 bytes/s, done.
  14. Total 3 (delta 1), reused 0 (delta 0)
  15. To git@github.com:han1202012/AndroidPictureViewer.git
  16. 1ddf8c7..e4377ba  master -> master

查看GitHub中的源码情况 : gen 和 bin 目录果然被删除了;

Git的一些用法(下)的更多相关文章

  1. Git 安装及用法 github 代码发布 gitlab私有仓库的搭建

    版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 这个版本控制软件,有 svn还有git,是一个工具. git是由linux的作者开发的 git是一个分布式版本控制系统 ...

  2. git clone、git pull和git fetch的用法及区别

    声明:码字不易,转载请注明出处,欢迎文章下方讨论交流.Git 常用命令速查表 最近在一个学习小组里学习AI的课程,我们所有的学习资料和homework都放在gitlab上.今天一个小队友从gitlab ...

  3. Git的一些用法

    三. Git的一些用法 1. .gitignore文件 屏蔽文件 : .gitignore文件是告诉Git哪些目录或者文件需要忽略, 这些文件将不被提交; 常用场景 : 写完代码后会执行变异调试等操作 ...

  4. git日常基本用法

    git作为项目管理现在已经是越来越广泛应用,结合自己平时的一些基本操作加上git说明文档里面的一些补充,我总结了一下git的基本用法: mkdir project # 创建项目目录 cd projec ...

  5. Git branch 和 Git checkout常见用法

    git branch 和 git checkout经常在一起使用,所以在此将它们合在一起 1.Git branch 一般用于分支的操作,比如创建分支,查看分支等等, 1.1 git branch 不带 ...

  6. Git 版本控制 在 WIN 下的一些使用方法

    这里记录一些 Git 在 Windows 操作系统下使用方法: 安装完毕后,先让Git 记录自己的名字: $ git config --global user.name "Your Name ...

  7. Eclipse Git和sourceTree用法

    Eclipse Git和sourceTree用法 Eclipse Git: 提交代码到git: 1.team->Repository->pull 若没有冲突: 2.team->com ...

  8. Git系列(1) Windows下Git服务器搭建

    作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 我们这里只需要两个软件git和ssh, ...

  9. Mybatis基本用法--下

    Mybatis基本用法--下 第七部分 mybatis-spring-boot-starter 官网:http://www.mybatis.org/spring-boot-starter/mybati ...

  10. 版本控制工具——Git常用操作(下)

    本文由云+社区发表 作者:工程师小熊 摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码.使用分支.出现代码冲突的解决办法.紧急保存现场和恢复现场的操作.学会以后已经 ...

随机推荐

  1. 制作initramfs/initrd镜像

    Linux kernel在自身初始化完成之后,需要能够找到并运行第一个用户程序(这个程序通常叫做"init"程序).用户程序存在于文件系统之中,因此,内核必须找到并挂载一个文件系统 ...

  2. Zedboard学习(一):移植Ubuntu桌面操作系统 标签: ubuntu移植zedboardFPGA 2017-07-04 21:53 26人阅读

    环境准备: 首先,需要的肯定是Ubuntu操作系统.可以在自己的电脑上安装物理机,也可以是虚拟机下运行的.我的是在Vmware下运行的Ubuntu14.04 32位操作系统. 由于zedboard上的 ...

  3. 为什么丑陋的UI界面却能创造良好的用户体验?

    本文内容由Mockplus团队翻译. 官网:http://www.mockplus.cn 网站界面过于漂亮可能会影响网站的可用性,但本文中提到的5个网站界面可谓是“丑”出了新高度.这样的网站它还有可用 ...

  4. struts2标签使用详解

    Struts2常用标签总结一 介绍1.Struts2的作用 Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了更好的代码 ...

  5. redis 通配符 批量删除key

    Redis 中 DEL指令支持多个key作为参数进行删除 但不支持通配符,无法通过通配符批量删除key,不过我们可以借助 Linux 的管道和 xargs 指令来完成这个动作. 比如要删除所有以use ...

  6. linux系统学习(一)

    查看linux版本信息:http://distrowatch.com/ linux根目录下系统文件夹的含义 /boot 该目录下默认存放的是linux的启动文件和内核,一般200M swap交换分区, ...

  7. 敏捷开发之XP

    敏捷方法论有一个共同的特点,那就是都将矛头指向了“文档”,它们认为传统的软件工程方法文档量太“重”了,称为“重量级”方法,而相应的敏捷方法则是“轻量级”方法.正是因为“轻量级”感觉没有什么力量,不但不 ...

  8. javascript 如何创建只能执行一次的事件。

    document.getElementById("myelement").addEventListener("click", handler);   // ha ...

  9. 【扫盲贴】为什么屏幕分辨率是 640x480

    本文原地址:http://www.easyx.cn/skills/View.aspx?id=172 常见的屏幕分辨率很奇怪,为什么总用一些不零不整的数字?比如以前最常见的分辨率是 640x480,当初 ...

  10. codeforces 914E Palindromes in a Tree(点分治)

    You are given a tree (a connected acyclic undirected graph) of n vertices. Vertices are numbered fro ...