参考书籍:
    《Pro Git》中文版.pdf
 
git init           // 建立一个git仓库, 本地目录为工作目录, .git目录是中央数据目录
git init --bare    // 建立一个git裸库,本地目录为中央数据目录
 
git clone /home/git/test.git    // 同一机器,直接目录clone, 可指定clone后名称
git clone ssh://cxt@192.168.3.254/home/git/test.git  // 远程git目录clone,使用ssh协议,也可以使用http协议,git://协议
 
git config --global user.email xiaotaohuoxiao@163.com   // 设置用户email,强制性的
git config --global user.name  cxt                      // 设置用户名称
git config --list                                       // 查看已有配置信息
 
git status         // 查看git文件状态,未保存本地数据目录
 
git add file       // 保存file文件至本地数据目录 .git 暂存区
git add .          // 保存所有文件(修改,新增,删除等) 到 .git 暂存区
git add -u         // 只保存修改modify文件到 .git 暂存区
 
git rm --cache file  // 删除保存到 本地.git暂存区 的文件
 
git commit            // 项目提交到 .git, 进入交互界面提交编辑log
git commit -m string  // 项目提交到 .git,提交log为 string,提交后出现字符串为SHA-1校验和(20Bytes)
git commit --amend    // 撤销commit,前提是撤销之前未做任何改动
 
git log               // 查看提交历史
git log -p            // 展开显示每次提交的内容差异
git log -2            // 显示最近的两次更新
git log --stat        // 显示行数变化统计,查看做了哪些改动
git log --pretty=xxx  // 显示风格,=oneline,放在一行显示
 
git push origin master  // 推送,将本地 .git信息推送至 远程主机 .git中央数据目录
git pull origin master  // 取回,将远程 .git信息取回至本地主机 .git,同时更改当前工作目录文件
 
 
=========================================================================================
vi .gitignore       // 忽略某些文件,不要忽略 .gitignore,这样其他clone就能生效忽略
-----------------
*.[oa]              // 忽略所有 .o , .a文件
*~                  // 忽略所有存档文件
doc/                // 忽略doc目录下所有文件
 
 
git diff            // 对比文件,对比还没有 git add缓存文件内容
git diff --cache    // 对比这次修改与上一次commit快照内容
 
git remote          // 查看当前远程仓库, 仓库信息位置在 .git/config
git remote -v       // 显示对应克隆地址
git remote -r       // 显示远程分支
git remote add cxt /home/work/test   // 裸库可用来添加远程仓库目录(远程目录必须有 .git),非裸库也可以指定
                    // cxt是远程仓库的本地分支名字
git remote rename cxt sky  // 将远程仓库本地分支名称改为 sky
 
 
git branch f_cxt       // 创建f_cxt新分支,当前分支保存在 .git/HEAD
git checkout f_cxt     // 切换到f_cxt分支
git checkout -b f_cxt  // 创建f_cxt新分支, 并切换
git branch -d f_cxt    // 删除f_cxt分支
 
 
合并:
====================================
git checkout master
git merge f_cxt        // 将f_cxt更改合并到 master当前分支中,master未修改时,合并成功;master修改后,合并错误,需要解决冲突 conflicts
 
 
解决冲突:
====================================
$ git merge f_cxt
Auto-merging test.c
CONFLICT (add/add): Merge conflict in test.c
Automatic merge failed; fix conflicts and then commit the result.    // 需要解决冲突
 
此时系统处于合并未解决状态:
    
 
git status        // 查看冲突,列出所有未合并状态文件,并且文件内容有变化
 
$ cat test.c
------------------>
<<<<<<< HEAD
hahaha
=======     // 文件隔开
111
>>>>>>> f_cxt
 
修改冲突:
vi test.c
------------------>
hahaha       // 删除<<<<  >>>>  ===== 行,并且采取最终方案
 
 
git add test.c     // 将test.c标记为 已解决
 
git commit         // 提交merge更新
                   // 做法为删除原有两个test.c,新建修改后的test.c
 
 
============================================================
git branch -v           // 查看各个分支最后一次commit信息
 
git fetch origin        // 同步远程服务器尚未拥有的数据,更新origin/master指针
 
git push origin serverfix:aaa    // 将本地仓库serverfix分支推送至远程仓库的远程分支aaa,若没有aaa,则创建
 
git checkout -b serverfix origin/aaa  // 新建serverfix新分支,内容与远程origin/aaa一致,并且进行分支切换
 
git push origin :aaa    // 删除远程aaa分支
 
 
===============================================================
git rebare aaa          // 把aaa分支修改合并到当前分支,会将所有commit节点合并过来
 
出现冲突,解决冲突
git add .               // 提交冲突
git rebare --continue   // 完成rebare合并
 
git rebare --abort      // 终止rebare合并,回到rebare前状态
git reset --hard 版本回退到最新
 
git reset a.c 是把git仓库的a.c同步到暂存区中
git checkout a.c是把暂存区的a.c同步到工作区
 
原文: http://www.tech126.com/git-fetch-pull/

Git中从远程的分支获取最新的版本到本地有这样2个命令:
1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge

git fetch origin master
git log -p master..origin/master
git merge origin/master

以上命令的含义:
   首先从远程的origin的master主分支下载最新的版本到origin/master分支上
   然后比较本地的master分支和origin/master分支的差别
   最后进行合并
   上述过程其实可以用以下更清晰的方式来进行:

git fetch origin master:tmp
git diff tmp 
git merge tmp

从远程获取最新的版本到本地的test分支上
   之后再进行比较合并
2. git pull:相当于是从远程获取最新版本并merge到本地

git pull origin master

上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并

结束
 
==================================================================

git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂。

$ git pull <远程主机名> <远程分支名>:<本地分支名>

比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。

$ git pull origin next:master

如果远程分支是与当前分支合并,则冒号后面的部分可以省略。

$ git pull origin next

上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。

$ git fetch origin
$ git merge origin/next

在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动”追踪”origin/master分支。

Git也允许手动建立追踪关系。

git branch --set-upstream master origin/next

上面命令指定master分支追踪origin/next分支。

如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。

$ git pull origin

上面命令表示,本地的当前分支自动与对应的origin主机”追踪分支”(remote-tracking branch)进行合并。

如果当前分支只有一个追踪分支,连远程主机名都可以省略。

$ git pull

上面命令表示,当前分支自动与唯一一个追踪分支进行合并。

如果合并需要采用rebase模式,可以使用–rebase选项。

$ git pull --rebase <远程主机名> <远程分支名>:<本地分支名>
==============================================================
 

下面总结一下git reset的各个选项吧:

1 git reset –soft 只撤销commit,保留working tree和index file。

2 git reset –hard 撤销commit、index file和working tree,即撤销销毁最近一次的commit

3 git reset –mixed 撤销commit和index file,保留working tree

4 git reset和git reset –mixed完全一样

5 git reset –用于删除登记在index file里的某个文件。

git config配色方案

默认情况下,ubuntu下的终端中,git没有颜色,可以使用如下命令给git配色
git config --global color.status auto 
git config --global color.diff auto 
git config --global color.branch auto 
git config --global color.interactive auto 
 

对比不同分支的文件列表

git diff hash1 hash1 --stat

如果是branch的话

git diff branch1 branch2 --stat

加上 --stat 是显示文件列表, 否则是文件内容diff

Git常用操作命令收集:
1) 远程仓库相关命令
检出仓库:$ git clone git://github.com/jquery/jquery.git
查看远程仓库:$ git remote -v
添加远程仓库:$ git remote add [name] [url]
删除远程仓库:$ git remote rm [name]
修改远程仓库:$ git remote set-url --push[name][newUrl]
拉取远程仓库:$ git pull [remoteName] [localBranchName]
推送远程仓库:$ git push [remoteName] [localBranchName]
 
2)分支(branch)操作相关命令
查看本地分支:$ git branch
查看远程分支:$ git branch -r
创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支
切换分支:$ git checkout [name]
创建新分支并立即切换到新分支:$ git checkout -b [name]
删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并
创建远程分支(本地分支push到远程):$ git push origin [name]
删除远程分支:$ git push origin :heads/[name]

我从master分支创建了一个issue5560分支,做了一些修改后,使用git push origin master提交,但是显示的结果却是'Everything up-to-date',发生问题的原因是git push origin master 在没有track远程分支的本地分支中默认提交的master分支,因为master分支默认指向了origin master 分支,这里要使用git push origin issue5560:master 就可以把issue5560推送到远程的master分支了。

如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,那么可以这么做。

$ git push origin
test:master         // 提交本地test分支作为远程的master分支
//好像只写这一句,远程的github就会自动创建一个test分支
$ git push origin
test:test              //
提交本地test分支作为远程的test分支

如果想删除远程的分支呢?类似于上面,如果:左边的分支为空,那么将删除:右边的远程的分支。

$ git push origin
:test              // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心

3)版本(tag)操作相关命令
查看版本:$ git tag
创建版本:$ git tag
[name]
删除版本:$ git tag -d
[name]
查看远程版本:$ git tag -r
创建远程版本(本地版本push到远程):$ git push origin
[name]
删除远程版本:$ git push origin
:refs/tags/[name]
 
4) 子模块(submodule)相关操作命令
添加子模块:$ git submodule add [url]
[path]
如:$ git submodule add
git://github.com/soberh/ui-libs.git
src/main/webapp/ui-libs
初始化子模块:$ git submodule init
----只在首次检出仓库时运行一次就行
更新子模块:$ git submodule update
----每次更新或切换分支后都需要运行一下
删除子模块:(分4步走哦)
1)$ git rm --cached
[path]
2)
编辑“.gitmodules”文件,将子模块的相关配置节点删除掉
3) 编辑“.git/config”文件,将子模块的相关配置节点删除掉
4) 手动删除子模块残留的目录
 
5)忽略一些文件、文件夹不提交
在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如
target
bin
*.db
 
 

git操作-删除文件

转自:http://www.cnblogs.com/springbarley/archive/2012/11/03/2752984.html

日期:2012-05-20 来源: bg090721 分享至:

git删除文件

rm add2.txt

git rm add2.txt

git commit -m "rm test"

git push web

-----------at server

cd /var/www/foo.git;sudo git update-server-info

------------检查删除效果

cd;rm foo3 -rf;git clone http://[某ip]/foo.git foo3

------------更新已经存在的local code

cd;cd foo2

git remote add web [某user]@[某ip]:/var/www/foo.git/

git pull web master

git diff aa  package/prolin/libxui/src/Makefile

一次性清除本地与服务器不同的文件

git clean -d -fx

git clean -d -fx package/prolin/libxui/src/Makefile

笔记二、本地git命令的更多相关文章

  1. docker学习笔记二:常用命令

    docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...

  2. Git(二):常用 Git 命令清单

    转: http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html 我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图 ...

  3. Git学习笔记01--常用Git命令、cmd命令及Git总结性知识

    资源:外国网友制作的 Git Cheat Sheet 第二次学习廖雪峰老师的Git教程,学习过程中把教程中涉及到的Git命令及总结性知识记录下来方便二次复习. 知识点 所有的版本控制系统,其实只能跟踪 ...

  4. Git初探--笔记整理和Git命令详解

    几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...

  5. 代码管理工具 --- git的学习笔记二《git的工作原理》

    通过几个问题来学习代码管理工具之git 一.git是什么?为什么要用它?使用它的好处?它与svn的区别,在Mac上,比较好用的git图形界面客户端有 git 是分布式的代码管理工具,使用它是因为,它便 ...

  6. Git学习(二)Git命令

    1.创建新的git仓库 初始化一个Git仓库,使用git init命令. 上图中我们新建了目录/home/honey/cxf,并进入目录cxf执行命令git init完成新git仓库的初始化,初始化成 ...

  7. GitHub入门与实践 读书笔记二:Git的导入

    1.诞生背景 Linux的创始人Linus Torvalds 在2005年开发了Git的原型程序,后随着众多开发者的共同努力,现在他已经被大量的程序员采用. 2.什么是版本管理 版本管理:管理软件在开 ...

  8. 【开发笔记】- 安装Git命令

    1.查看linux版本信息: $ cat /etc/redhat-release 2.输入命令安装git: $ yum install git 3.等待下载,自动安装完毕,查看git版本 $ git ...

  9. Linux学习笔记二:tar命令使用

    tar命令详解 tar命令详解 -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的 ...

随机推荐

  1. Spring MVC mapping[From Spring MVC Beginner's Guide]

    In a Spring MVC application, the URL can logically be divided into five parts (see the following fig ...

  2. Codeforces Round #109 (Div. 2) E. Double Profiles hash

    题目链接: http://codeforces.com/problemset/problem/155/E E. Double Profiles time limit per test 3 second ...

  3. Excel插件类库的设计思路

    一.插件功能:提供多种读取Excel的方式,如NPOI.Com.Aspose,调用接口一致,包括Excel文件路径,sheet名称.读取是否包含列头(即Excel第一行是否为列头行) 二.实现思路 2 ...

  4. 【BZOJ】【1406】【AHOI2007】密码箱

    数论 Orz iwtwiioi 果然数论很捉鸡>_>完全不知道怎么下手 $$x^2 \equiv 1 \pmod n \rightarrow (x+1)*(x-1)=k*n $$ 所以,我 ...

  5. 2014ACM/ICPC亚洲区广州站 北大命题

    http://acm.hdu.edu.cn/showproblem.php?pid=5131 现场赛第一个题,水题.题意:给水浒英雄排序,按照杀人数大到小,相同按照名字字典序小到大.输出.然后对每个查 ...

  6. lua与 object-C 通信

    IOS中如何调用LUA,以及LUA如何调用IOS中的功能 下面将讲解一下如何在iOS里调用Lua函数,以及Lua函数如何调用iOS本地函数. 转载请注明出处.原文出处 http://www.cnblo ...

  7. win7 IIS7 PHP环境配置

    PHP5.2.17 官方下载: http://windows.php.net/downloads/releases/php-5.2.17-Win32-VC6-x86.zip PHP5.3.5 官方下载 ...

  8. Codeforces Round #271 (Div. 2) F ,E, D, C, B, A

    前言:最近被线段树+简单递推DP虐的体无完肤!真是弱! A:简单题,照着模拟就可以,题目还特意说不用处理边界 B:二分查找即可,用lower_lound()函数很好用 #include<stri ...

  9. (链接保存)CentOS 6.6下yum快速升级内核

    (因Docker建议3.8以上kernel版本)这个方法升级很方便,保存链接备用: http://www.dadclab.com/archives/5340.jiecao Docker Engine安 ...

  10. associated 2 maps

    <!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content= ...