More Related Content Similar to Git Essence Tutorial (20) Git Essence Tutorial2. 作者及起源
2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合
作关系结束,他们收回了免费使用 BitKeeper 的权力。这就迫使
Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds )不得不
吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈
覆辙。
10. Git 配置
Linux 配置文件: /etc/gitconfig
Windows 配置文件: C:Documents and Settings$USER.gitconfig
初始化配置:
$ git config --global user.name “kim"
$ git config --global user.email xqpmjh@gmail.com
演示:
$ git config --list
12. 本地创建仓库
$ git init
观察一下 .git 目录
20. 提交更新
$ git commit –m “hello world”
默认分支为 master ,多人协作开发可以为每个人开一个分支。
每一次运行提交操作,都是对你项目作一次快照。
21. 删除文件
$ git rm abc.txt
同时删除版本库以及文件夹里面的文件
23. 查看历史
$ git log --pretty
不用客户端的话根本没法看
24. 取消暂存
$ git reset HEAD abc.txt
即撤消了 add 操作,蓝色十字变回蓝色问号
25. 撤销修改
$ git checkout -- 111.txt
撤销前 撤销后
26. 推送
$ git push origin master
push 的是之前 commit 到本地暂存的快照
27. 拉取
$ git pull origin master
pull 的是仓库中没有同步到本地的快照版本
28. 打标签
$ git tag -a v1.0 -m 'my version 1.0'
PS:比如发布版本的时候就打上一个吧
如果说 branch 是一对一的关系,那么 tag 则是一对多的关系
30. 推送标签
$ git push origin --tags
push 的时候选中 Include Tags
单推一个 tag 用 $ git push origin v1.0
37. 创建分支
$ git branch testing
创建一个新的分支指针 testing
39. 切换分支
或者
PS:Git 里面 checkout 的意思跟 SVN 有所不同
40. HEAD 指针
$ git checkout testing
$ git status
切换分支其实就是把 HEAD 指针指向别的分支指针
指针的指针的意思
41. 分支修改
$ git checkout testing
$ vim branch_changes.log
$ git commit -a -m 'made a change'
每次提交后 HEAD 随着分支一起向前移动
42. 分支修改
$ git checkout master
$ vim branch_changes_2.log
$ git commit -a -m 'made other changes'
这种情况也可以称之为“分叉”
52. 分享分支
$ git clone --progress -v "D:wwwmyframework" "D:wwwmfr”
$ cd D:wwwmfr
$ git branch sharing
$ git push --progress "origin" sharing
PS:前提当然是你有 myframework 仓库的写权限
57. 删除远程分支
$ git push myframework :sharing
这句语句可以这么理解:把本地分支置空,再同步到远程仓库
62. 更新子模块
$ cd D:/www/git1/myframework
$ git branch -v
$ cd D:/www/myframework
$ git branch -v
再给 branch_of_rep1 添加一个新文件,如 api2.php
63. 更新子模块
$ git submodule update
$ cd D:/www/git1/myframework
$ git pull origin "origin" branch_of_rep1
子模块的修改跟主项目是相对独立的
64. 其它特性
1. Git 挂钩
2. 和 SVN 一起使用?
3. 储藏(git stash 命令)
4. 子树合并(git tree 命令)
5. Git 支持4种协议:file, ssh, http(s), git
6. Git 导入 SVN(git svn 命令)
72. 常见问题
8. 配置了 putty 作为 ssh 客户端之后?
运行 GitDirTortoiseGitbinpageant.exe ,Add Key 加入
你的 ssh privete key file 文件,并输入密码