git 常用命令使用实践总结-wish
来源:互联网 发布:mac ppt动画顺序调整 编辑:程序博客网 时间:2024/06/06 07:49
Git 和其他版本控制系统的主要差别:
git clone git@192.168.1.175:openstack/horizon-2014-1-1.git
git clone git@192.168.1.175:openstack/nova-2014-1-1.git
git clone git@192.168.1.175:openstack/python-novaclient-2-17-0.git
git clone git@wishi.gitlab.com:openstack/keystone-2014-2-b1.git
git clone git@wishi.gitlab.com:openstack/python-keystoneclient-0-9-0.git
git clone git@wishi.gitlab.com:openstack/ceilometer-2014-1-1.git
git clone git@wishi.gitlab.com:openstack/python-neutronclient-2-3-4.git
git clone git@wishi.gitlab.com:openstack/python-glanceclient-0-12-0.git
git clone git@wishi.gitlab.com:openstack/neutron-2014-1-1.git
git clone git@wishi.gitlab.com:openstack/glance-2014-2-b1.git
git clone git@wishi.gitlab.com:openstack/unitelog.git
2、git 已经存在master主分支情况下,新建dev开发分支及使用:(以nova为例)
1、将nova代码clone到本地:git clone git@wishi.gitlab.com:openstack/nova-2014-1-1.git
2、进入nova文件夹,新建分支:cd nova-2014-1-1git branch dev (默认此dev父分支为当前分支)
从某个tag处创建分支:git branch <branch_name> <tag_name>
3、 查看所有分支,检测分支是否创建成功git branch -a
4、将本地新建的分支push到远端代码库:git push origin dev
5、如果需要clone 开发分支代码,使用如下命令:git clone -b dev git@wishi.gitlab.com:openstack/nova-2014-1-1.git
6、开发分支提交代码,使用如下命令:git add . git commit -m "test commit" git push origin dev
备注,以后所有的代码开发都只能在dev分支上面,master只能保存发布版本合并代码
3、删除git分支:删除本地分支:git branch -d you_branch_name(强制删除用-D)
删除远程分支:git push origin :you_branch_name
举例删除nova 远程的dev分支
方法1:git 放弃本地修改 强制更新
git fetch --all git reset --hard origin/master
git fetch 只是下载远程的库的内容,不做任何的合并 git reset 把HEAD指向刚刚下载的最新的版本(git pull 则会将远程代码合并进本地库)
git fetch --all git reset --hard origin/master
git fetch 只是下载远程的库的内容,不做任何的合并 git reset 把HEAD指向刚刚下载的最新的版本(git pull 则会将远程代码合并进本地库)
-a参数可以查看远程分支,当前分支前面加有*号标记,远程分支会用红色表示出来(如果你开了颜色支持的话):
12345678910# git branch -a master remote tungway v1.52* zrong remotes/origin/master remotes/origin/tungway remotes/origin/v1.52 remotes/origin/zrong
9、删除远程分支及tag:-a参数可以查看远程分支,当前分支前面加有*号标记,远程分支会用红色表示出来(如果你开了颜色支持的话):
在Git v1.7.0 之后,可以使用这种语法删除远程分支:
删除tag这么用:
否则,可以使用这种语法,推送一个空分支到远程分支,其实就相当于删除远程分支:
这是删除tag的方法,推送一个空tag到远程tag:
两种语法作用完全相同。
12、已经通过git add 加入到暂存区的文件,撤销回来:
origin (显示只有一个origin分支)
$ git remote add pb git://github.com/paulboone/ticgit.git (添加一个远程分支pb)
$ git remote -v (再次查看)
origin git://github.com/schacon/ticgit.git
pb git://github.com/paulboone/ticgit.git
现在可以用字串 pb 指代对应的仓库地址了。比如说,要抓取所有 pb有的,但本地仓库没有的信息,可以运行 git fetch pb:
$ git fetch pb
remote: Counting objects: 58, done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 44 (delta 24), reused 1 (delta 0)
Unpacking objects: 100% (44/44), done.
From git://github.com/paulboone/ticgit
* [new branch] master -> pb/master
* [new branch] ticgit -> pb/ticgit
如果设置了某个分支用于跟踪某个远端仓库的分支,可以使用 git pull 命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支。该命令其实相当于git fetch 和 git merge
git remote rm paul
git merge dev
git branch --no-merged //查看哪些分支还没有与当前分支合并了
最容易的整合分支的方法是 merge 命令,它会把两个分支最新的快照以及二者最新的共同祖先进行三方合并
把在一个分支里提交的改变在另一个分支里重放一遍。
这基本上等于在说“检出 client 分支,找出 client 分支和 server 分支的共同祖先之后的变化,然后把它
们在 master 上重演一遍”
在衍合的时候,实际上抛弃了一些现存的 commit 而创造了一些类似但不同的新 commit。如果你把commit
推送到某处然后其他人下载并在其基础上工作,然后你用 git rebase 重写了这些commit 再推送一次,你的合
作者就不得不重新合并他们的工作,这样当你再次从他们那里获取内容的时候事情就会变得一团糟。
本地回滚:
git reset --hard commit-id :回滚到commit-id,将commit-id之后提交的commit都去除
git reset --hard HEAD~3:将最近3次的提交回滚
git checkout branch_name
git pull
git branch branch_backup //备份一下这个分支当前的情况
git reset --hard commit_id //将branch_name本地回滚到commit_id
git push origin :branch_name //删除远程 branch_name分支
git push origin branch_name //用回滚后的本地分支重新建立远程分支
git push origin :branch_backup //如果前面都成功了,删除这个备份分支
25、
$git config --global core.autocrlf true# Configure Git on Windows to properly handle line endings解释:core.autocrlf是git中负责处理line endings的变量,可以设置三个值--true,inout,false.
设置成三个值会有什么效果呢?
If core.autocrlf
is set to true, that means that any time you add a file to the git repo that git thinks is a text file, it will turn all CRLF line endings to just LF before it stores it in the commit.。
设置为true,添加文件到git仓库时,git将其视为文本文件。他将把crlf变成lf。【2】
If core.autocrlf
is set to false, no line-ending conversion is ever performed, so text files are checked in as-is. This usually works ok。【2】
设置为false时,line-endings将不做转换操作。文本文件保持原来的样子。
设置为input时,添加文件git仓库石,git把crlf编程lf。当有人Check代码时还是lf方式。因此在window操作系统下,不要使用这个设置。
这是参考文献2给的解释希望能帮助大家。
Yet another way to show how autocrlf
works
1) true: x -> LF -> CRLF2) input: x -> LF -> LF3) false: x -> x -> x
where x is either CRLF (windows-style) or LF (unix-style) and arrows stand for
file to commit -> repository -> checked out file
- git 常用命令使用实践总结-wish
- git 常用命令使用实践总结-wish
- Git常用命令实践总结
- Git常用命令使用总结
- Git安装使用、Git 常用命令总结
- 【Git】Git常用命令总结
- Git:Git常用命令总结
- 【Git】Git常用命令总结
- git:总结git常用命令
- Git 实践使用总结 -----/*自己编写*/
- Git常用命令总结
- git 常用命令总结
- Git常用命令总结
- Git常用命令总结记录
- [总结]Git常用命令
- git常用命令总结
- Git 常用命令总结
- git 常用命令总结
- 测试oracle连接池最大连接数
- 80x86汇编学习笔记
- 黑马程序员 java学习笔记 Day4:集合
- PowerDesingner--java代码生成类图
- RMAN备份与恢复—对数据库进行完全介质恢复
- git 常用命令使用实践总结-wish
- 在widgetoneIDE环境下使用HTML5和jQueryMobile控件编写UI界面-九宫格
- 微信公众号开发系列-开发环境要求和准备工作
- hadoop 学习笔记:mapreduce框架详解
- Objective-C Runtime 运行时之一:类与对象
- Java程序员笔试面试之Java基础
- Android中通过Intent 调用图片、视频、音频、录音、拍照
- Linux & Mac package安装命令
- cocos2dx ios android 添加 box2d