`

[版本控制]Git学习与总结

 
阅读更多

一、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** 是一个开源的分布式版本控制系统,用于跟踪在软件开发过程中对文件的修改。它最初由Linus Torvalds于2005年创建,目的是为了更高效地管理Linux内核的源...

    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学习git学习git学习git学习git...

    git学习笔记 (详细总结)

    Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件

    Git常用命令总结资源合集

    git常用命令总结 Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了...本资源是Git常用命令总结资源合集,有需要的朋友可以下载学习。

    git学习常用命令总结

    "git学习常用命令总结" Git是当前最流行的版本控制系统之一,对于开发者来说,掌握 Git 的基本命令是必不可少的。本文将对 Git 的常用命令进行总结,帮助开发者快速掌握 Git 的使用。 初始化操作 在使用 Git ...

    版本控制SVN和GIT笔记

    总结来说,版本控制作为软件开发过程中的核心工具,具有记录、追踪、比较和合并代码变更的能力,极大地促进了团队协作和项目管理。SVN和GIT作为两款主流的版本控制系统,各有特点和优势,满足不同团队和项目的需求。...

    java之Git总结笔记

    总结来说,Git 作为一款强大的版本控制系统,极大地促进了团队协作和代码管理。掌握 Git 的使用,不仅可以帮助开发者更好地追踪和管理代码变更,还能提升项目的透明度和可维护性。无论是个人项目还是大型企业级开发...

    Git window下的版本控制工具

    总结来说,"Git window下的版本控制工具"是Windows环境下用于管理和协作开发的必备工具,特别适合下载和管理如Android这样的大型开源项目。通过它,开发者可以高效地进行版本控制操作,同时享受到Git的强大功能和...

    Git分布式版本控制系统权威指南视频教程

    ### Git分布式版本控制系统...以上是关于“Git分布式版本控制系统权威指南视频教程”的核心知识点总结。通过这些知识点的学习,可以帮助开发者更好地掌握Git的基本操作和高级用法,从而提高团队的开发效率和代码质量。

    版本控制svn+git

    这里我们主要探讨两种广泛使用的版本控制系统:Subversion(SVN)和Git。 **Subversion(SVN)** SVN是一款集中式版本控制系统,它的核心思想是将所有文件的版本存储在一个中央仓库中。用户通过连接到这个仓库来...

    GIT 64位 版本管理Git ,有需要的朋友请下载

    总结来说,Git 64位版本是一个强大且高效的版本控制系统,它提供了丰富的功能来支持软件开发中的版本管理和团队协作。无论你是个人开发者还是大型团队的一员,Git都能够帮助你更有效地管理和追踪代码的变化。在下载...

    字节跳动<Git学习手册>

    ### 字节跳动《Git学习手册》核心知识点详解 #### 一、Git基础概念与原理 **Git** 是一种分布式版本控制系统,它可以帮助开发者高效地管理项目代码的变更历史。相较于传统的集中式版本控制系统(如SVN),Git具有...

    git命令学习并实践总结

    ### Git命令学习与实践总结 #### 一、Git基本概念 **Git** 是一个分布式版本控制系统,被广泛应用于软件开发项目中。它可以帮助开发者管理代码变更历史,支持多人协作开发。 **分支(Branches)**: 在Git中,分支...

    Git学习总结电脑资料.doc

    Git 是一个分布式版本控制系统,与传统的集中式版本控制系统如SVN相比,有着显著的优势。Git 支持离线工作,每个工作树都是一个完整的仓库,包含工程的历史记录,这意味着即使在网络不可用的情况下,用户仍能进行...

    学习git和gitbash使用的一些详细操作

    总结来说,Git是一个功能强大的版本控制工具,它提供了一套完整的机制来维护项目的版本历史,帮助开发者进行高效协作。无论是个人项目还是团队协作,熟练掌握Git都将极大提升开发效率和管理能力。

    git常用命令总结

    在日常工作中,`git` 是必不可少的版本控制工具之一。本文档旨在汇总个人使用过程中遇到并频繁使用的 `git` 命令,便于查阅与学习。 #### 二、核心命令及用法详解 **1. git add** - **语法**: `git add [选项] ...

    git学习总结电脑资料.doc

    Git 是一个分布式版本控制系统,与传统的集中式系统如SVN相比,它的主要特点是每个开发者的本地机器上都拥有一个完整的仓库历史。Git 支持离线工作,可以在没有网络连接的情况下进行提交,然后在有网络时再将本地的...

Global site tag (gtag.js) - Google Analytics