每次git提交,都会有一个parent指针,指向上一次的commit

 
如果合并,master就和hotfix河道一起,就直接删除hotfix就OK
 
 
此时,虽然操作一样,大底层实现不一样,要xinchuangjian一个C6分支,master到C6分支。
 
 
git commit --amend
 
在多次修改之后,就用该命令,amend很重要,不需要再建立另外一个连接,在刚才提交的修改信息上就OK
github:
 

http://blog.sina.com.cn/s/blog_67a3453d0101j8qr.html

 
git --global user.name 'wang'

git --global user.emlai 'efeff@.com‘
git commit  --amend --reset-author
 
gitconfig配置文件
 
git tag -a v1.0 -m 'myversion'   添加版本标签
 
git show  显示版本信息
 
git log  日志
 
git  checkout -b 'affs'    新建并切换到当前分支
 
 
git merge 合并分支
 
git branch 如果不加参数则说明显示所有分支
 
 
git  init  初始化项目仓库
 
远程仓库,现在要建一个网页版本,
gerrit看需不需要注册
 
 
 
git clone  www.
 
自动命名为origin
一次Git 克隆会建立你自己的本地分支master 和远程分支origin/master,
它们都指向origin/master 分支的最后一次提交。
 
 
 
 
 
 
git  fetch 同步服务器上的数据
 
git push (远程仓库名) (分
支名):
$ git push origin  new_branch(要推的分支)
 
 
 
如果此时另外一个人用git fetch 了
 
他还无法直接开发,要用:
git checkout -b serverfix origin/new_branch
 
即在远程分直接出上键一个分支
 
 
注意在删除文件或添加文件时,有时需要执行两次执行add命令,才能保存已存。
 
 
不管删除还是添加,在你执行commit后都会显示出来。
 
 
比如: 2 files changed ,1 files added ,deleted phont.py
 
 
 
 
 
 
 
STEP:
 
1.创建SSH Key 
ssh-keygen -t rsa -c "haib.wang@hotmail.com"
此时会生成.ssh文件,然后找到.pub文件,拷贝里面的ssh key 。
2.到github主页上,添加 SSH Key
3.将本地仓库代码传到github上
 先配置  
git config --global user.name "hbnn"
git config --global --reset-author
 
git  remote add origin git@github.com:hbnn/My_paper.git
git  clone git@github.com:hbnn/Python_PYQT.git
 
提交、上传
 
 
git push origin v5(版本信息)
 
 
标准的提交版本信息:
 
1、创建里程碑
git tag -m "Release v1.0" v1.0
 
git push origin refs/tags/v1.0
 
 
 
 
 
 
 
 
 
 
 
git  push origin master
 
 
 
  • 为版本库添加名为origin的远程版本库。

    $ git remote add origin git@github.com:gotgithub/helloworld.git
    
  • 执行推送命令,完成GitHub版本库的初始化。注意命令行中的-u参数,在推送成功后自动建立本地分支与远程版本库分支的追踪。

    $ git push -u origin master
    
    
    
    
    

refs/heads/ 存放的是本地分支的哈希值;

refs/remotes/ 存放的是远程分支的哈希值;

refs/tags/ 存放的是tags的哈希值;

Git 自动维护几个symrefs ,在任何时候都可以标识某次提交。

HEAD

标识当前分支的最后一次提交,当你变换分支,HEAD也换成新分支的最后一次提交。 ORIG_HEAD

某些操作,如执行merge ,reset时,ORIG_HEAD 记住了变更时的版本,你可以用ORIG_HEAD去恢复到上一次版本。 FETCH_HEAD

MERGE_HEAD

Git rebase
一般在将服务器最新内容合并到本地时使用,例如:在版本C时从服务器上获取内容到本地,修改了本地内容,此时想把本地修改的内容提交到服务器上;但发现服务器上的版本已经变为G了,此时就需要先执行Git rebase,将服务器上的最新版本合并到本地。例如:
用下面两幅图解释会比较清楚一些,rebase命令执行后,实际上是将分支点从C移到了G,这样分支也就具有了从C到G的功能。

 
衍合步骤:
git co experiment
git rebase master
 
 
git学习记录:
 
 
切换到不同目录
删除远程分支:git push origin :branch_name
注意origin与冒号之间一定要有空格。
 
 
git checkout -- benchmarks.rb  取消对该文件的修改。
 
 
移除远程仓库也可以用:git remote rm paul
$ git remote origin
 
 
文件的3个状态(很重要)
 
已提交;已修改;暂存;
已提交就是commit之后的文件
已修改就是你进行修改之后的(modify)
暂存文件就是修改后放入暂存区域(修改后执行,git add)提示,changed to be commited
如果添加新文件,编辑后还不是跟踪文件(提示untracked files)
 
给git commit 加上-a 选项,Git 就
会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过git add 步骤.不过要注意,这里只是所有已经跟踪过得文件,如果是未跟踪的,比如新添加的文件,就需要先执行git add。
删除文件git rm。如果删除之前修改过并且已经放到暂存区
域的话,则必须要用强制删除选项-f(译注:即force 的首字母),以防误删除文件后丢失

修改的内容。

git reset HEAD benchmarks.rb取消已经修改并暂存的文件。
git checkout -- benchmarks.rb 取消对文件的修改   
 
git mergetool   可视化图形工具,用于引导你解决冲突。
 
 
注意与远程的交互:
假如你同步了服务器上的数据
此时origin/master与master指向同一个版本,当你在本地修改master文件时,master指针向前移,但是origin/master并没有移动,而此时服务器上的数据,由于别人的推送,又有了新的更新,你执行 git fetch origin 就会出现如下图所示:
git merge origin/master 合并origin/master 和master
 
 
然后,执行git push origin master, origin/master和master就合并了。
git push origin featureB:featureBee(服务器上另一个人建的分支),将自己的分支推到另外一个人建的分支)
 
 
git checkout -b serverfix origin/serverfix  该命令是在远程分支的基础上新建的一个分支,内容和远程分支内容是同步的。
 
git 学到127页。
 
 
repo 
 
repo是用来管理Android项目的,是用python写的脚本。简化了对多个git版本库的管理,是git的封装。
 
repo init 是克隆Android的一个清单库,是通过XML技术建立的版本库清单。
清单库的manifest.xml文件有160多种版本库的克隆方式。然后reposync 进行同步。
 
repo init:
repo init -u git://android.git.kernel.org/platform/manifest.git -b release-1.0 
 
-u 该参数指定清单库的git服务器地址。
-b 检出清单库德尔特定分支
-m 当有多个清单文件时,可以指定清单库中的某个清单文件时有效的清单文件,默认的为default.xml。他是在.repo/manifest中,.repo/manifest.xml只是一个符号链接,它实际上也是指向上个.xml文件。
 
在manifest.xml文件中:
 <?xml version="1.0" encoding="UTF-8"?>
  2 <manifest>
  3   <remote fetch="ssh://gerrit.lud.stericsson.com:29418/" name="m74x0" review    ="http://gerrit.lud.stericsson.com/gerrit"/>
  4
  5   <default remote="m74x0" revision="ste-dev-br1"/>
 
remote定义的是远程版本库,review是定义了代码审核服务器,git一般是与gerrit合用。这里就是gerrit服务器。
default是设置默认的远程版本库和默认的分支revision。
 
 <project groups="swpf_app,host_if,sipc_oem,wifi_extensions" name="android/    platform/vendor/st-ericsson/hardware/mpl" path="modem/datacom/ip/cnh1608154_    mpl" revision="fac095796825288882670d7f0a01ea7f5a83b73f"/>
 
一共有很多的project,语法都相同。
 
git push m74x0 HEAD:refs/for/ste-dev-br1 
 
 
ste-dev-br1 是在.repo/repo/.git/remotes中
repo sync 同步所有的版本库,第一次执行就是克隆,再次执行就是更新。
当然可以指定特定的项目(project)
 
 
repo start实际是对git checkout -b命令的封装。
repo checkout 相当于git checkout
repo upload 相当于git push
repo prune 相当于 git branch -d
 
 
 
参考资料:
  【1】git手册
  【2】 Git权威指南
 
 

git学习(这个我没有整理,是我不断在学习的过程中,自己总结的,对象是我,不过有问题的,我们可以相互交流)的更多相关文章

  1. 【Unity】近期整理Unity4.x 项目升级Unity5.0 过程中出现的各种常见问题,与大家共享。

    近期整理Unity4.x 项目升级Unity5.0 过程中出现的各种常见问题,与大家共享. 1:Unity4.x 项目中3D模型其材质丢失,成为"白模"?       解决方式:手 ...

  2. iOS开发学习概述及知识整理

    设计师设计出来了一个不错的引导界面,然而当我看到设计稿的时候,我们的app也没几天就要上线了.这个界面模仿了Evernote iOS app的风格. 我以迅雷不及掩耳盗铃之势开始在Xcode上编程,用 ...

  3. [转] 整理了一份React-Native学习指南

    自己在学习React-Native过程中整理的一份学习指南,包含 教程.开源app和资源网站等,还在不断更新中.欢迎pull requests! React-Native学习指南 本指南汇集React ...

  4. 整理了一份React-Native学习指南

    原文:  http://www.w3ctech.com/topic/909 自己在学习React-Native过程中整理的一份学习指南,包含 教程.开源app和资源网站等,还在不断更新中.欢迎pull ...

  5. Git使用方法(精心整理,绝对够用)转载

    Git使用方法(精心整理,绝对够用)   一.git客户端(本地仓库)的一些操作 1.设置账户(需要和github账户设置一致) git config --global user.name xxx g ...

  6. 2019年Unity学习资源指南[精心整理]

    前言 进入一个领域,最直接有效的方法就是,寻找相关综述性文章,首先你需要对你入门的领域有个概括性的了解,这些包括: 1.主流的学习社区与网站. 2.该领域的知名大牛与热心分享的从业者. 3.如何有效的 ...

  7. 大数据 -- kafka学习笔记:知识点整理(部分转载)

    一 为什么需要消息系统 1.解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险.许多 ...

  8. Git的基本使用汇总整理

    初始化一个Git仓库,使用 git init 命令,此时会创建一个默认的master分支.添加文件到Git仓库,分两步: 使用命令git add <file>,将文件添加到暂存区: 使用命 ...

  9. Java学习路线图,专为新手定制的Java学习计划建议

    怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西:    首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA).J ...

  10. 转:Java学习路线图,专为新手定制的Java学习计划建议

    转自:http://blog.csdn.net/jinxfei/article/details/5545874 怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业 ...

随机推荐

  1. ubuntu 中增加鼠标右键菜单,为Windows 的exe 程序快速增加桌面快捷键

    #!/bin/bashmyfile=$NAUTILUS_SCRIPT_SELECTED_FILE_PATHSmyfilename=${myfile##*/}myfilename=${myfilenam ...

  2. CI框架多个表前缀,如何使用框架语句querybuilder

    最近用CI框架遇到一个问题.2个前提条件: 1.数据库设计不规范,有的有表前缀(如:ck_table1),有的没有(如:table2)或者表前缀不一样: 2.数据库操作又想使用数据库操作语句query ...

  3. gulp watch error ENOSPC

    in linux you fix this with the command:echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sy ...

  4. [充电]C++ string字符串替换

    //C++ 第一种替换字符串的方法用replace()|C++ 第二种替换字符串的方法用erase()和insert()[ C++string|C++ replace()|C++ erase()|C+ ...

  5. Android LayoutParams简介

    LayoutParams是子控件控制自己在父控件中布局的一个类. 不同布局都有相对的LayoutParams,最简单的LinearLayout.LayoutParams类可以设置布局的宽高. 我在写一 ...

  6. 【转】 Tomcat v7.0 Server at localhost was unable to start within 45

    转载地址:http://www.jsjtt.com/java/JavaWebkaifa/58.html Starting Tomcat v7.0 Server at localhost' has en ...

  7. 【转】Struts1.x系列教程(5):HTML标签库

    转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/0 ...

  8. .getClass();

    Java的每个类都带有一个运行时类对象,该Class对象中保存了创建对象所需的所有信息.可以用.class返回此 Object 的运行时类Class对象,也可以用getClass()获得.获得此对象后 ...

  9. Swashbuckle for asp.net core 配置说明

    0x00 安装 Swashbuckle 6.0 打开程序包管理器控制台,输入: Install-Package Swashbuckle -Pre 0x01 配置 Startup.cs public v ...

  10. WPF上Arc Lisence的有关问题

    WPF下Arc Lisence的问题代码如下: using System; using System.Collections.Generic; using System.Configuration; ...