文章摘自:http://git-scm.com/book/zh
   第一章  Git的安装
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install git
现在已经可以用 git 命令了,用 git 把 Git 项目仓库克隆到本地,以便日后随时更新:
$ git clone git://git.kernel.org/pub/scm/git/git.git
$ yum install git-core
用户信息
$ git config --global user.name "John Doe"$ git config --global user.email johndoe@example.com
查看配置信息
要检查已有的配置信息,可以使用 git config --list 命令:

第二章  Git仓库常用命令
在工作目录中初始化新仓库
$ git init
如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:
$ git add *.c$ git add README$ git commit -m 'initial project version'
从现有仓库克隆
比如,要克隆 Ruby 语言的 Git 代码仓库 Grit,可以用下面的命令:
$ git clone git://github.com/schacon/grit.git
如果希望在克隆的时候,自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:
$ git clone git://github.com/schacon/grit.git mygrit
检查当前文件状态
要确定哪些文件当前处于什么状态,可以用 git status 命令。如果在克隆仓库之后立即执行此命令,会看到类似这样的输出:
$ git statusOn branch masternothing to commit, working directory clean
跟踪新文件
使用命令 git add 开始跟踪一个新文件。所以,要跟踪 README 文件,运行:
$ git add README
此时再运行 git status 命令,会看到 README 文件已被跟踪,并处于暂存状态:
$ git statusOn branch masterChanges to be committed:  (use "git reset HEAD <file>..." to unstage)        new file:   README
忽略某些文件
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。来看一个实际的例子:
$ cat .gitignore*.[oa]*~
我们再看一个 .gitignore 文件的例子:
# 此为注释 – 将被 Git 忽略# 忽略所有 .a 结尾的文件*.a# 但 lib.a 除外!lib.a# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO/TODO# 忽略 build/ 目录下的所有文件build/# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txtdoc/*.txt# ignore all .txt files in the doc/ directorydoc/**/*.txt
提交更新
用 -m 参数后跟提交说明的方式,在一行命令中提交更新:
$ git commit -m "Story 182: Fix benchmarks for speed"
移除文件
$ rm grit.gemspec$ git statusOn branch masterChanges not staged for commit:  (use "git add/rm <file>..." to update what will be committed)  (use "git checkout -- <file>..." to discard changes in working directory)        deleted:    grit.gemspecno changes added to commit (use "git add" and/or "git commit -a")
然后再运行 git rm 记录此次移除文件的操作:
$ git rm grit.gemspecrm 'grit.gemspec'$ git statusOn branch masterChanges to be committed:  (use "git reset HEAD <file>..." to unstage)        deleted:    grit.gemspec
另外一种情况是,我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。换句话说,仅是从跟踪清单中删除。比如一些大型日志文件或者一堆 .a 编译文件,不小心纳入仓库后,要移除跟踪但不删除文件,以便稍后在 .gitignore 文件中补上,用 --cached 选项即可:
$ git rm --cached readme.txt
$ git rm log/\*.log
$ git rm \*~
移动文件
$ git mv README.txt README$ git statusOn branch masterChanges to be committed:  (use "git reset HEAD <file>..." to unstage)        renamed:    README.txt -> README
查看提交历史
下面的命令列出所有最近两周内的提交:
$ git log --since=2.weeks

表 2-3 还列出了其他常用的类似选项。

选项 说明
-(n)                      仅显示最近的 n 条提交
--since,--after                      仅显示指定时间之后的提交。
--until, --before                      仅显示指定时间之前的提交。
--author                      仅显示指定作者相关的提交。
--committer                      仅显示指定提交者相关的提交。
来看一个实际的例子,如果要查看 Git 仓库中,2008 年 10 月期间,Junio Hamano 提交的但未合并的测试脚本(位于项目的 t/ 目录下的文件),可以用下面的查询命令:
$ git log --pretty="%h - %s" --author=gitster --since="2008-10-01" --before="2008-11-01" --no-merges -- t/5610e3b - Fix testcase failure when extended attributeacd3b9e - Enhance hold_lock_file_for_{update,append}()f563754 - demonstrate breakage of detached checkout wid1a43f2 - reset --hard/read-tree --reset -u: remove un51a94af - Fix "checkout --track -b newbranch" on detacb0ad11e - pull: allow "git pull origin $something:$cur
修改最后一次提交
如果刚才提交时忘了暂存某些修改,可以先补上暂存操作,然后再运行--amend 提交:
$ git commit -m 'initial commit'$ git add forgotten_file$ git commit --amend
上面的三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。

取消已经暂存文件

可以使用 git reset HEAD <file>... 的方式取消暂存。好吧,我们来试试取消暂存 benchmarks.rb 文件:
$ git reset HEAD benchmarks.rb
取消对文件的修改
可以使用 "git checkout -- <file>..."的方式取消对文件的修改
$ git checkout -- benchmarks.rb

远程仓库的使用——查看当前的远程仓库
要查看当前配置有哪些远程仓库,可以用 git remote 命令,它会列出每个远程库的简短名字。
$ git remote
添加远程仓库
要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add
$ git remoteorigin$ git remote add pb git://github.com/paulboone/ticgit.git$ git remote -vorigin  git://github.com/schacon/ticgit.gitpb  git://github.com/paulboone/ticgit.git
现在可以用字符串pb指代对应的仓库地址了。比如说,要抓取所有 Paul 有的,但本地仓库没有的信息,可以运行 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
现在,Paul 的主干分支(master)已经完全可以在本地访问了,对应的名字是 pb/master,你可以将它合并到自己的某个分支,或者切换到这个分支,看看有些什么有趣的更新。

从远程仓库抓取数据
$ git fetch [remote-name]
推送数据到远程仓库
$ git push origin master
查看远程仓库信息
我们可以通过命令 git remote show [remote-name] 查看某个远程仓库的详细信息,比如要看所克隆的 origin 仓库,可以运行:
$ git remote show origin* remote origin  URL: git://github.com/schacon/ticgit.git  Remote branch merged with 'git pull' while on branch master    master  Tracked remote branches    master    ticgit

远程仓库的删除和重命名
在新版 Git 中可以用 git remote rename 命令修改某个远程仓库在本地的简称,比如想把 pb 改成paul,可以这么运行:
$ git remote rename pb paul$ git remoteoriginpaul
注意,对远程仓库的重命名,也会使对应的分支名称发生变化,原来的 pb/master 分支现在成了paul/master。
碰到远端仓库服务器迁移,或者原来的克隆镜像不再使用,又或者某个参与者不再贡献代码,那么需要移除对应的远端仓库,可以运行 git remote rm 命令:
$ git remote rm paul$ git remoteorigin

新建标签
$ git tag -a v1.4 -m 'my version 1.4'
显示已有的标签
$ git tag
可以使用 git show 命令查看相应标签的版本信息,并连同显示打标签时的提交对象。
$ git show v1.4

转载于:https://blog.51cto.com/jimodandanchou/1404333

Git的学习笔记(一)相关推荐

  1. 《Got Git》学习笔记(一)

    <Got Git>学习笔记(一) 最近想对自己的代码和文档进行归档整理,需要一个版本控制系统来进行 处理.自然而然的想到了目前流行的GitHub. GitHub,是一个面向开源及私有软件项 ...

  2. git的学习笔记(二):git远程操作

    git的学习笔记(一):git本地操作 1.创建ssh key ssh-keygen -t rsa -C "your_email@example.com" 执行命令后会在用户的家目 ...

  3. Git 个人学习笔记及心得

    作为程序员如果你还不知道 Git 和 GitHub,说不过去吧,赶紧来学习一波. 一.认识GitHub Git 是个版本控制系统,说明白点就是进行代码的各种管理,比如你写错代码进行回滚啊.追寻 Bug ...

  4. Learn Git Branching 学习笔记(移动提交记录篇)

    目录 一.移动提交记录篇 1.Git Cherry-pick 2.交互式rebase Git用法高级篇在上一篇文章中Learn Git Branching 学习笔记(高级篇)_流年--by gone的 ...

  5. Learn Git Branching 学习笔记(高级话题篇)

    目录 一.高级话题篇 1.多分支rebase 2.选择父提交记录 3.纠缠不清的分支 Git的一些技术.技巧与贴士集合在上一篇文章中 Learn Git Branching 学习笔记(Git 技术.技 ...

  6. git/github学习笔记

    原文地址为: git/github学习笔记 请移步到:http://www.testclass.net/git/ ----- 我重新对git/github教程进行了编排和整理. 1. git 版本控制 ...

  7. git serialtool_Git学习笔记---协作的一般流程

    一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服 ...

  8. 廖雪峰Git教程学习笔记

    廖雪峰git简单教程学习笔记 教程地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b ...

  9. Git入门学习笔记(10分钟速通)

    一.Git概述 官网翻译: Git 是一个免费的开源 分布式版本控制系统,旨在快速高效地处理从小型项目到大型项目的所有内容. Git易于学习, 体积小,性能快如闪电.它超越了 Subversion.C ...

  10. Git工作流学习笔记

    Git工作流指南 分布式版本控制系统 观看笔记:https://www.bilibili.com/video/BV1dW411U7ER?p=1 老师笔记: http://www.funtl.com/z ...

最新文章

  1. Spring越来越强,而我们越来越快餐!离开了Spring,居然API都写不出来了! 程序猿DD...
  2. Java中有关Null的9件事
  3. Flex命令行学习总结
  4. ButterKnife Zelezny导入不成功遇到的问题
  5. 使用C#进行系统编程
  6. JavaFX UI控件教程(二)之JavaFX UI控件
  7. Matlab repmat函数
  8. Office2010试用
  9. VSCode自定义代码片段15——git命令操作一个完整流程
  10. shell中用grep查找并且不输出_grep awk 搜索日志常用命令
  11. 从梯度下降到ADMM-学习记录
  12. 30个类仿真手写spring框架V2.0版本
  13. LeetCode 300. 最长上升子序列(动态规划)
  14. pmp备考资料这些都是必备的
  15. 【JSP售票系统】JSP+SSH+MSSQL火车票铁路售票系统源码
  16. 中专生计算机职业素养论文,中职学生的职业素养
  17. Linux学习_系统文件IO
  18. 台式计算机显示不了无线网络,我是台式电脑,插上无线网卡怎么我的链接里不显示无线...
  19. 前端实现base64解码编码
  20. xlua生成Wrap代码排除指定dll

热门文章

  1. paip.oracle10g dmp文件导入总结
  2. paip.c#.net自定义图像窗体form
  3. 酒后谈IT,那些术语大妈都能秒懂!
  4. 中证协 | 安青松:“金融+科技”是证券业高质量发展的战略引擎
  5. 连续 3 年支撑双 11,阿里云神龙如何扛住全球流量洪峰?
  6. 重磅!容器存储解决方案蓝皮书发布
  7. 详解阿里云第六代增强型实例,性能强劲,百万IOPS加持
  8. 【优化算法】混合蛙跳算法(SLFA)【含Matlab源码 300期】
  9. 【目标跟踪】基于matlab光流法运动视频跟踪【含Matlab源码 1357期】
  10. 【图像去噪】基于matlab邻域+中值滤波图像去噪【含Matlab源码 961期】