1、GIT是一个分布式的版本管理系统,他与SVN等集中化的版本管理系统最大的区别就是,每一个GIT的客户端都保存了完整的版本信息,而在SVN中要访问历史的版本智能通过SVN服务器
理解git分支操作的基础:在 Git 中提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容快照的指针,包含本次提交的作者等相关附属信息,包含零个或多个指向该提交对 象的父对象指针(首次提交是没有直接祖先的,普通提交有一个祖先,由两个或多个分支合并产生的提交则有多个祖先。)
提交的内容快照的组织形式类似于文件系统的树状目录,每一层都包含了该层被修改的文件的指针以及下一层目录的指针。类似这样
每个commit对象都通过父对象指针连接起来,类似这样:
git checkout
命令,如git checkout testing,那么git就会根据当前的版本计算出到达testing分支所需增删的commit,然后将本地工作空间变成对应的分支工作环境,分支开发工作完成后又可以迅速切回之前的分支,因为数据都在本地,因此这个操作超级快!这个是我认为git能超越svn的最主要原因~git status
查看冲突的文件,vi修改冲突的文件,git add添加到staged(这时就认为已经解决了冲突),commit,完事*
)匹配零个或多个任意字符;[abc]
匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?
)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9]
表示匹配所有 0 到 9 的数字)。5、git commit 提交add到staged的文档
6、
1)git rm 从工作空间及staged中删除某文件,commit后就不再跟踪了
2)git rm --cached 从index中删除指定文件,不再跟踪,但在工作空间中保留。可使用正则表达式
7、git mv 移动文件,重命名
8、
1)git log 查看提交历史
2)
git log -p -2 最近两次更新的内容差异
3)还有很多的筛选条件,可自行搜索
9、gitk 查看Log的图形化工具
10、git commit --amend 可用于修改最后一次提交。可修改注解或者新增漏了提交的文件
11、git reset HEAD <file> 取消暂存
12、
git checkout -- benchmarks.rb 取消对文件benchmarks.rb的修改,并用最后一次commit的版本替换
13、git remote -v 查看git中配置的远程仓库 -v 表示verbose
14、git remote add [shortname] [url] 新增远程仓库
15、
git fetch [remote-name] 从指定仓库拉取所有分支到本地。拉取完后就可以在本地访问该分支的所有内容,拉取是指拉取到仓库,并不会主动合并拉取的分支到当前的工作分支
16、git push [remote-name] [branch-name] 推送到远程仓库。要本地更新到最新,才能进行本操作
17、git remote show [remote-name]
查看某个远程仓库的详细信息
18、git remote rename
命令修改某个远程仓库在本地的简称
19、git remote rm 删除远程仓库
20、git tag 显示出现有的标签
21、
git tag -l 'v1.4.2.*' 筛选标签
22、git tag -a v1.4-m 'my version 1.4' 打标签 -a 指定标签名 -m指定注释
23、git show
命令查看相应标签的版本信息,并连同显示打标签时的提交对象。
24、 可以在历史某次提交后打标签,在最后面的参数指定 对象校验和即可
25、git push
并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。其命令格式如同推送分支,运行git push origin [tagname] 或者 git push origin --tags
git branch
查看当前所有分支git branch -v
所有分支更具体的内容git branch testing
创建分支testing29、 git branch --merge
查看哪些分支已被并入当前分支(也就是说哪些分支是当前分支的直接上游。)
30、git branch --no-merged
那些还没有被合并
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于