git学习

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

git学习
 
如果合并,master就和hotfix河道一起,就直接删除hotfix就OK
 
git学习
 
此时,虽然操作一样,大底层实现不一样,要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学习

 
git学习
衍合步骤:
git co experiment
git rebase master
git学习
 
 
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学习
 
给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学习
git merge origin/master 合并origin/master 和master
 
git学习
 
然后,执行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
 

git学习

上一篇:HBuilder X 中使用模拟器进行App开发


下一篇:fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include