Git相关分享
来源:互联网 发布:虚拟物品下载源码 编辑:程序博客网 时间:2024/06/05 22:52
文/程序亦非猿(简书作者)
原文链接:http://www.jianshu.com/p/331cd9fdeae7
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
控制版本系统(VCS)
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统
集中化控制系统(CVCS)
集中化控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,客户端通过这台服务器获取文件或提交更新.
缺点
很明显,中央服务器是个中心,一旦它出了问题就会影响整个系统.
中央服务器单点故障,如果服务器一挂,那么整个系统就挂了,无法工作
甚至,中央服务器磁盘故障,很可能导致数据丢失,丢失所有历史更改记录等重要信息.
分布式版本控制系统(DVCS)
客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份
Git–控制版本之神
简史
作者,大神 Linus Torvalds
优点:
速度
简单的设计
对非线性开发模式的强力支持(允许上千个并行开发的分支)
完全分布式
有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
Git常用命令
config
git config #--global 全局配置git config --global user.name "alan"git config --global user.email alancheen06@gmail.comgit config --list 查看配置列表
init
git init用来初始化项目
它会创建一个.git目录,它包含所有初始化git的所有文件
clone
git clone url git clone url name #重命名成name
文件的状态
接下去的命令跟文件状态有关
add
untracked===>staged
git add filegit add .
staged===>untracked
git reset HEAD file
commit
git commit -m "init"git commit -a -m "init"git commit -am "init"git commit --amend #想要撤消刚才的提交操作,可以使用 --amend 选项重新提交
// 演示
branch
创建分支
git branch branchname
PS:当init一个仓库时,master需要先commit一遍才能新建其他分支,否则会得到一个错误fatal: Not a valid
object name:’master’.
切换分支
git checkout branchname
创建并切换分支
git checkout -b branchname
查看分支
git branch -r -a -l
删除分支
git branch -d branchname #删除本地分支 git push origin --delete branchname #删除远程分支
// 演示
远程协作
git remote add [shortname] url
如:
git remote add origin url #git remote -v 可以查看所有远程仓库
fetch
git fetch remote-name
fetch 只是从远程仓库 获取数据,并不会合并到工作区
pull
git pull origin master
pull = fetch +merge
push
git push [remote-name] [branch-name] git push origin master
查看提交历史
git log 查看提交历史
–pretty=oneline 一行显示
–stat 带统计信息
–graph 图形化
git reflog
回退版本
git reset --hard commitId
暂存
git stash/pop
标签
git tag
帮助
git help cmdname
….
别名
git config --global alias.co checkoutgit config --global alias.br branchgit config --global alias.ci commitgit config --global alias.st statusgit config --global alias.unstage 'reset HEAD --'git config --global alias.last 'log -1 HEAD'
其他
gitignore
忽略不想提交的文件
gitflow
基于git的工作流
工具推荐
SourceTree
git GUI 软件
iTerm2+oh my zsh
不管装不装逼,都要必备
学习资料推荐
GitPro2
内容很多,很详细,堪称权威,而且还有中文版,还有pdf等下载,一定要看看.
git-简明指南(很棒)
非常棒的指南,极力推荐
githug
一个git的游戏,现在一共有54个关卡,从init开始,让你在玩的过程中学习git,挺有意思
learnGitBranching
又是一个学习git的游戏,不过这个是针对分支的游戏,非常棒~非常推荐
- Git相关分享
- git 分享
- git分享
- Git 相关
- git 相关
- git 相关
- git相关
- git相关
- Git相关
- Git相关
- git相关
- Git 相关
- Git相关
- git 相关
- git相关
- git 相关
- git相关
- git相关
- WordCount程序中隐藏的秘密
- iOS iOS中UITextField和UITextView屏蔽表情符号的输入
- 输入信息页面js验证,提示信息
- App Store编辑推荐背后的秘密:70%为游戏
- 通过ICE轻松部署WES7镜像
- Git相关分享
- Python 知识库,不错!
- java开发人员的网址
- Vim的分屏功能
- EditText自定义监听的案例
- 任务、进程和线程
- SpringMvc控制器接收数组类型参数Demo
- android 中限制 eidttext输入emjoy表情
- Java 征途:行者的地图