git 笔记(未整理 backup)

------------------------------------------------------------
1.查看分支
git branch
git branch -a 查看所有分支
git branch <new-branch> 基于当前分支创建新的分支
git branch -r 查看远程分支
git checkout <branch> 切换分支
git branch --track <new-branch> <remote-branch>
git branch <branch> -d 删除本地分支
git branch <branch> -D 强制删除本地分支(如果没有merge进去)
2.本地提交
git add . 当前所有修改添加到下次提交中
git add --all 添加所有,包括新增的
git commit -m "" -a
git commit -m "" readme.txt
git commit -am "" 不需要add,但是不包含添加的部分
git commit -am --amend "" 修改上次提交,并且提交当前修改
git rebase -i 删除commit对象
3.远程提交
git push origin head:refs/for/master%r=song.w,r=song.w
git push origin master
git push origin <local-new-branch> 本地新建分支推送到远程(须有权限)
4.远程同步
git fetch 获取所有最新的分支到工作区(默认是所有)
git fetch <branch> 获取指定的分支
git pull 保证分支是最新的(fetch + merge,容易产生一个空的commit)
git pull --rebase 比起pull安全一点,并且分支不会像merge那样杂乱。
git pull <source-branch> <source-sub-b> 回远程分支并合并到当前分支
git pull <source-branch> <source-sub-b>:<local-branch> 取回远程分支并合并到本地分支
git fetch origin <new-branch> 获取新的分支到仓库
git checkout <branch> 迁出分支,开始同步(也叫切换分支)
git rebase <source-branch> 把源分支合并到当前分支
4.撤销
git reset --hard head 放弃当前工作内容。
git reset --hard head~1 回到上一个历史版本
git reset --hard refLog-change-id 回到未来的一个版本,或者回到历史的某个版本
git checkout filename revert 文件 撤销
4.1文本
git diff
rm -f .git/index.lock
5.合并
git merge <source-branch> 合并到当亲分支(容易产生commit,并且push的时候会出现missing change-id,需要通过
commit -amend 来添加change-id 来解决)
git rebase <source-branch> 合并代码(定义分支的状态)
rebase不会产生新的commit,会自动来重复之前的commit
git rebase -abort 放弃rebase
git squash commits 合并commit

6.备份
7.git 线路图
gitk
10.
------------------------------------------------------------
主题
1.冲突
git rebase <source-branch> 合并代码
git add . 放到缓冲区
git rebase --continue 继续重新定义分支的状态
git push for 重新提交代码
2.合并版本(当前分支的多个版本)
git fetch
git rebase <target-branch> <source-branch>
------------------------------------------------------------
问题
1.git要不要每次push的时候pull一下?
2.origin/head 为啥指向origin/master?
------------------------------------------------------------
todo
1.dev merge 到master,master 再merge到release。
2.
3.

------------------------------------------------------------
注意点:
1.push前需要获取最新
2.别人push之后,如果我本地有commits,则需要uncommitted,然后拉取最新的。
3.切换分支之前要关闭vs,重新打开
4.Your branch is ahead of ‘origin/dev‘ by 1 commit.
这个commit
------------------------------------------------------------
你rebase或者pull下
http://stackoverflow.com/questions/2452226/master-branch-and-origin-master-have-diverged-how-to-undiverge-branches
merge 和rebase区别(关于冗余日志)
http://blog.csdn.net/wh_19910525/article/details/7554489
git教程
http://gitbook.liuhui998.com/
http://blog.csdn.net/wangjia55/article/details/8791180 git rebase 抽屉比喻
------------------------------------------------------------
宋玮 http://blog.csdn.net/w_jewelry/article/details/8123639 解决冲突

git入门 flash http://conf.ctripcorp.com/pages/viewpage.action?pageId=54461673
gerrit 项目申请 http://conf.ctripcorp.com/pages/viewpage.action?pageId=55378426
git问题 http://conf.ctripcorp.com/display/SysDev/10.FAQ
git 所有命令 http://conf.ctripcorp.com/pages/viewpage.action?pageId=13609130
git 基础的命令行 http://conf.ctripcorp.com/pages/viewpage.action?pageId=57509485
git pdf http://git-guide.dev.sh.ctripcorp.com/files/ProGit_zh_CN.pdf
git 常用操作(rebase) http://conf.ctripcorp.com/pages/viewpage.action?pageId=53627858#id-4.常用操作-_Toc394777088详解gitrebase
------------------------------------------------------------
1. merge
>git checkout master
>git merge origin
将远程的分支merge到当前分支,ok之后就提交,当前分支改了,然后远程也改了。
2. rebase
>git checkout master
>git rebase origin
将origin重整,直接就是修改origin分支,好像把当前分支直接嫁接到origin。
所以如果,在不产生冲突下,使用origin不会产出merge commit,因为是一种嫁接。
3. push 的时候no new change
一般是其他分支合并东西过来的,需要修改下当前分支,产生新的commit。
4.push no tracking
修改下没有change-id的commit,git commit --amend -am ""
这样就会有change-id
5.missing Change-Id in commit messa
ge footer 这可能是有一些commit没有change-id
6.怎么保证merge过来的commit不被打散,只要一次review就通过
要都有change-id;如果已经分叉,需要reset,然后pull --rebase,然后再merge。
7.普通的新的commit没有change-id 有可能是没有hooks。
8. merge 的注意点,相关的两个分支都需要获取到最新的状态,否则容易分叉,增加解决的难度,rebase后会重演掉已经存在的commit。
9. git unpack failed: error Missing tree 可以用这个命令 git push --no-thin
------------------------------------------------------------
远程分支的合并必须用merge,本地分支的合并用rebase,理由如下:
1.merge会保留远程提交的commit。
进行衍合的时候,实际上抛弃了一些现存的提交对象而创造了一些类似但不同的新的提交对象。如果你把原来分支中的提交对象发布出去,并且其他人更新下载后在其基础上开展工作,而稍后你又用 git rebase 抛弃这些提交对象,把新的重演后的提交对象发布出去的话,你的合作者就不得不重新合并他们的工作,这样当你再次从他们那里获取内容时,提交历史就会变得一团糟。
2.本地的commit没有发布出去,而且需要一条线的commit,用rebase比较好。
------------------------------------------------------------
1.实验一:分支分叉后,release分支和master分支分叉,release提前修改,master之后,看看commit的先后关系。
2.实验二:rebase的方向问题。

时间: 2024-11-13 10:15:47

git 笔记(未整理 backup)的相关文章

Linux 学习笔记(未整理)

redhat 5.4中文显示乱码问题 安装 1.fonts-chinese-3.02-9.6.el5.noarch.rpm.  如果无法安装,则加个--force 2.fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm 多数人到了这里就没有做其它操作了,导致仍然无法正确显示中文. 3.cd /usr/share/fonts/ 4.fc-cache -fv  # 以上的两个步骤,才是成功完成的关键!所以这里要特别注意!重新启动系统即可 建立交叉编译环境 在Linux

git常用指令整理及说明(详细)

git常用指令整理及说明(详细) git常用指令整理及说明详细 安装和配置 工作区版本库和暂存区 本地库和远程库 新建仓库 从远程库克隆 常用查看指令 常用修改指令 撤销修改和版本回退 分支管理 创建和合并分支 解决冲突 bug分支 远程分支 优秀教程笔记 本文是git系列博客的第二篇.本文对指令按照使用场景(建库,查看,修改,分支)进行分类归纳,介绍指令基本含义和用法,方便查阅. 安装和配置 参考我前面的博客:git在各操作系统平台下的安装和配置 工作区.版本库和暂存区 工作区:就是你在电脑里

【转载】Git 常用命令整理

Git 常用命令整理 博客分类: Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux 初始化配置 C代码   #配置使用git仓库的人员姓名 git config --global user.name "Your Name Comes Here" #配置使用git仓库的人员email git config --global user.email [email protected] #配置到缓存 默认15分钟 git config

Git常见命令整理

Git常见命令整理 + 注释 git init # 初始化本地git仓库(创建新仓库) git config --global user.name "xxx" # 配置用户名 git config --global user.email "[email protected]" # 配置邮件 git config --global color.ui true # git status等命令自动着色 git config --global color.status au

(小组)Git 常用命令整理

Git 常用命令整理 取得Git仓库 初始化一个版本仓库 git init Clone远程版本库 git clone [email protected]:wordpress.git 添加远程版本库origin,语法为 git remote add [shortname] [url] git remote add origin [email protected]:wordpress.git 查看远程仓库 git remote -v 提交你的修改 添加当前修改的文件到暂存区 git add . 如果

未整理--第一次缓冲时间

详解FirstBufferTime 测试结果分析过程中,经常遇到第一次缓冲时间FirstBufferTime,并且发现大部分系统的响应时间也都浪费在了这里,再给研发解释这个问题时候,又不能拿FirstBufferTime直接给研发说,抽时间整理了下,希望对大家有用 以下资料来自 LR帮助手册: 定义:第一次缓冲时间细分图显示成功从Web服务器返回的第一次缓冲之前的这一段时间内,每个网页组件的相关服务器/网络时间(以秒为单位) 网络时间:从发送第一个http请求那一刻直到收到确认为止,所经过的平均

iOS学习笔记-精华整理

iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始等待用户的操作,自动释放池就会被释放掉(调用dealloc),池中的对象都会收到一个release,有可能会因此被销毁. 2-成员属性:     readonly:不指定readonly,默认合成getter和setter方法.外界毫不关心的成员,则不要设置任何属性,这样封装能增加代码的独立性和安全

Learning The Bash Shell读书笔记(整理)

最近搞了一本书 Learning Bash Shell,发现有人已经写了阅读笔记,我就在这边整理一下 来自blog:http://blog.sina.com.cn/n4mine Learning The Bash Shell读书笔记(1)bash初识,通配符 Learning The Bash Shell读书笔记(2)重定向,管道,后台 Learning The Bash Shell读书笔记(3)特殊字符,引用,控制键 Learning The Bash Shell读书笔记(4)历史命令 Lea

LAMP搭建--未整理版

[[email protected] ~]#yum search  关键字   //安装过程中提示少哪个程序就搜关键字找包名 [[email protected] httpd-2.2.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-cgi --enable-charrset-lite --enable-ssl [[email protected] ~]#useradd -M -s /