一、Git特性与状态:
特性:
不能联网时一样可以提交更新或与历史版本对比.
几乎所有操作都可以本地执行.
时刻保持数据完整性:所有文件和目录会经过sha-1算法校验和计算.并作为数据唯一标识和索引.
一旦提交快照就不用担心数据丢失.
git三种状态:已修改、已暂存、已提交
已修改:已修改某个文件但还没有暂存.
已暂存:已修改的文件放在下次提交时要保存的清单中. git add
已提交:该文件已经被安全的保存在本地数据库中了. git commit
二、基本命令
1、用户信息
git config --global user.name "xxx"
git config --global user.email xxx@xxx.com
2、查看配置信息
git config --list
3、查看某项配置信息
git config user.name
4、获取帮助
git help
git branch --help //某条命令的信息
5、从现有仓库克隆:
git clone url 或 git clone url rename
6、检查文件当前状态:
git status
7、跟踪新文件:
git add file 将已修改的文件放到暂存区
8、忽略文件:
建立.gitignore
#注释
/dir 目录
!filename 某文件除外
9、查看尚未暂存的文件更新了哪些部分:
git diff
10、已暂存文件和上次提交的差异:
git diff --cached
11、提交更新:
git commit
提交前需要确认还有哪些文件没有git add过,否则提交时不会记录这些没有暂存的变化。
git commit -a
跳过使用暂存区,git把所有跟踪过的文件暂存起来一并提交。
12、移除文件:
先使用rm file手工删除文件,再使用git rm file记录此次移除文件的操作.
最后提交时,该文件就不再纳入版本管理了。
git rm -f 强制删除,以防删除后丢失修改的内容。
如果希望从git仓库(亦即从暂存区删除),但还保留在工作目录中,即删除跟踪不删除文件,以便稍后在.gitignore文件中补上用--cached参数即可:
git rm --cached file
13、查看提交历史:
git log
git log -2 //显示最近2次提交历史
git log -p //展示每次提交的内容差异,+为新增行,-为删除行.
git log --stat //显示修改过的文件,增减行数统计
git log --pretty=oneline|short|full|fuller //显示信息从少到多
git log --pretty=format:"%h - %an - %cn" //format可以自己定制显示格式
git log --since=3.day //显示3天内的提交
git log --committer=shensy //显示某人提交的所有记录
git log --grep=fix //搜索提交记录中的关键字
还有很多参数请参见git log --help
14、修改最后一次提交:
git commit --amend //修改上一次提交时的comment
出现上一次提交时的comment,在此基础上修改即可,但是千万不能把git自动生成的comment给动了,否则他就不能识别原来的patch了,而会新建一个patch。
15、取消已经暂存的文件:
对于已经git add到暂存区的文件,可以使用:
git reset HEAD file 取消暂存。
16、取消修改:
git checkout -- file
17、查看远程仓库:
git remove -v //查看远程仓库信息,克隆某个项目后至少可以看到一个名为origin的远程库(git默认使用origin标识远程库).
18、添加远程仓库:
git remote add shortname url
19、从远程仓库抓取:
git fetch remote-name
20、推送数据到远程仓库:
git push remote-name branch-name
如果在推送前,别人已经推送了一些更新,则推送回被驳回。必须先获取最新更新后,然后才可以再次推送。
21、查看远程仓库信息:
git remote show remote-name
22、远程仓库的重命名:
git remote rename remote-name rename
23、打标签:
如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用git tag给它打上标签。该tag命令基本上会给该特殊提交打上永久的书签,从而使你在将来能够用它与其他提交比较。通常,你会在切取一个发布版本或者交付一些东西的时候打个标签。
24、显示标签:
git tag //显示所有
git tag -l 2012* //按照字符串匹配
25、创建带注释的标签:
git tag -a v1.4 -m "comment..."
26、查看标签的版本信息:
git show tagname
27、创建轻量级标签(不包含附加信息):
git tag tagname
28、后期加注标签:
先查询历史提交
git log --pretty=oneline
后打上标签跟上对象校验和的前几位数字即可
git tag -a v1.2 5aef25ac
29、分享标签:
一般情况git push不会把标签推送到远端服务器,只有显示命令才会推送到远端仓库中。
git push origin v1.5
git push origin --tags //一次推送所有标签
其他人拉去数据后就会看到这些标签。
30、Git分支:
git创建新分支就是创建新的分支指针。
git中保存着一个名为HEAD的特别指针,它是一个指向正在工作中本地分支的指针。
git branch [branch_name] //新建一个分支
git checkout [branch_name] //切换分支
git checkout -b [branch_name] //新建一个分支
git merge [branch_name] //合并分支
合并后使用git status查看冲突文件,unmerged状态为未合并状态。
=====隔开的上半部分是HEAD中的内容,下半部分是你合并分支中的内容。
31、分支管理:
查看各分支最后一次提交信息:
git branch -v
git branch --merged //查看已合并分支
git branch --no-merged //查看未合并分支
git branch -d [branch_name] //删除本地分支
git branch -D [branch_name] //强制删除本地分支
32、远程分支:用远程仓库名/分支名的形式表示远程分支
git checkout -b test origin/master //从远程origin仓库master分支切换出一个分支test.
33、推送:
git push 远程仓库名 分支名
34、跟踪分支:即从远程分支检出的本地分支。
git checkout --track origin/test //将本地分支跟踪远程仓库origin中的test分支
git checkout -b ts origin/test //将本地分支跟踪远程仓库origin中的test分支,本地别名为ts跟踪后,本地分支git pull和git push时自动向远程分支推送和抓取数据。
35、删除远程分支:
git push 远程仓库 :远程分支 //注意git push时相当危险
36、衍合rebase:
把一个分支里提交的改变在另一个分支里重放一遍。
永远不要衍合那些已经推送到公共仓库的更新。
git rebase [targetbranch] //将目标分支的提交都合并到当前分支(会从目标分支创建起的全部改变合并)
如果提示处理冲突。处理好后,可以运行git rebase –continue继续直到完成
如果不想处理,还是有两个选择,一个是放弃rebase过程(运行git rebase –abort),另一个是直接用targetbranch分支的取代当前分支的(git rebase–skip)。
37、reset:
通过git reset,实现将当前分支切换到本分支以前的任何一个版本状态,即所谓的“回溯”。即实现了本分支的“后悔药”。也即版本控制系统的初衷。
参考资料:
http://www.cnblogs.com/kym/archive/2010/08/12/1797937.html 关于git rebase
相关推荐
git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git学习git...
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件
git常用命令总结 Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了...本资源是Git常用命令总结资源合集,有需要的朋友可以下载学习。
git是一个分布式的版本控制系统。例如我们一个小团队合作开发一个项目,我们可以先建立一个远程仓库,需求分析,搭建大体框架,将项目框架上传至远程仓库,队员可以git clone项目,各自完成自己负责的部分,完善项目...
git常用命令总结 内容概要 本文总结了一些常用的Git命令,包括初始化和克隆仓库、添加和提交文件、分支管理、...探索其他版本控制工具,了解其特点和适用场景; 积极参与开源项目,提高自己的代码管理和协同开发能力。
学习git的时候自己总计的git相关知识,很完整,完全是自己总结(干货)
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
代码版本管理系统大致可以分为三个时代:这代主要的特点提供本地代码版本控制,比如SCCS(1972)、PVCS(1985)等。这代主要实现了基本的代码版本管理,但缺点是无法让多人同时对一个版本库进行修改。这个也和当时软件...
我是通过看廖雪峰的git教程...我这里记录git的学习笔记,方便随时参考,具体的git的原理、github的原理、集中式和分布式版本控制的区别、版本控制的概念和原理、Git和其他版本控制工具比如SVN的区别、以及更多的相关
目前关于 Git 的教程很多,各有特色,本书主要总结了 Git 社区内的精华问题,帮助读者系统的学习 Git 知识。 适用人群 需要版本控制工具的开发者,Github 使用者。 学习前提 本书涉及内容为由浅入深,学习之前,你...
git:版本控制的工具,gerrit是对git提交代码的一个可视化代码审核机制。gitweb:Gitweb提供了git版本库的图形化web浏览功能,能看代码库,提交日志等服务器操作系统:ubuntu14.04gerrit所用包:gerrit-2.10.war,此...
git是一个分布式版本控制系统,平时使用myeclipse或者eclipse,也有对应的egit插件,这个是日常总结出来的使用规范,可以直接给开发人员使用,减少学习成本,减少代码处理解释的时间。
什么是版本控制系统(VCS) 1什么是分布式版本控制系统(DVCS) 1:新公司用 Git 管理代码,怎么快速上手? 2:团队工作的基本工作模型 1:HEAD、master 与 branch 2:push 的本质 3:merge:合并 commits ...
1.1 关于版本控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 本地版本控制系统 . . . . . . . . . . . . . . . . . . . . . . 1 1.1.2 集中化的版本控制系统 . . . . . . . . . . . . . . ....
- Gitignore文件:1个,用于Git版本控制时忽略不必要的文件。 - 文本文件:1个TXT文件,可能包含项目说明或配置信息。 通过本项目,开发者可以深入理解SSM框架的原理与使用方式,同时掌握基于此框架的实战开发技巧...
什么是版本控制系统(VCS) 学习时长: 3分26秒 试学 2 什么是分布式版本控制系统(DVCS) 学习时长: 2分46秒 试学 3 上手 1:新公司用 Git 管理代码,怎么快速上手? 学习时长: 15分34秒 4 上手 2:团队工作的基本...
什么是版本控制系统(VCS) 学习时长: 3分26秒 试学 2 什么是分布式版本控制系统(DVCS) 学习时长: 2分46秒 试学 3 上手 1:新公司用 Git 管理代码,怎么快速上手? 学习时长: 15分34秒 4 上手 2:团队工作的基本...