为了账号安全,请及时绑定邮箱和手机立即绑定

git安装与使用教程。。。。

标签:
Java C C++

Git 简史

同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds )不得不吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对新的系统制订了若干目标:

速度
简单的设计
对非线性开发模式的强力支持(允许上千个并行开发的分支)
完全分布式
有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

在 Windows 上安装

在 Windows 上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行:

http://msysgit.github.com/
完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。

配置用户信息

第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

基本使用命令

Git 创建库
git clone <url>  ssh/http(s)/git三种协议,ssh和https可推送
git init      初始化Git仓库

Git 日常操作
git add <file>   将文件加入index file
git rm [--cached]   删除,加--cached表示仅从index file中删除文件,即放弃跟踪
git mv <src> <dest>   移动/更名
git diff --cached/--staged 当前索引与上次提交(有哪些需要commit)
git diff   当前索引与工作目录(有哪些需要add)
git diff HEAD[^]   工作目录与上次提交(当前目录与上次提交有何改变)
git commit [-a] -m <msg>  提交
git commit --amend [-m <msg>] 修复上次提交
git reset HEAD <file>  同--mixed,default option
git reset --mixed HEAD 撤销 commit 和index file,只保留 working tree 的信息
git reset --hard HEAD[^]   将 working tree 和 index file 都撤销到以前状态
git reset --soft HEAD[^]   只撤销 commit,而保留 working tree 和 index file 的信息
回复到某个状态。以git reset --soft HEAD为例,commit回退到
HEAD(相当于无变化),若是HEAD^,则commit回退到HEAD^
git gc 用垃圾回收机制清除由于 reset 而造成的垃圾代码
git status  显示当前工作目录状态
git log [-p]  显示提交历史(many useful options to be learned)
git branch [branch]   显示/新建分支
git branch -d/-D  删除分支(d表示“在分支合并后删除分支”,D表示无论如何都删除分支)
git show-branch
git checkout <branch>  切换分支(分支未commit无法切换)
git merge <branch>   合并分支
git remote [-v] 显示远程仓库,加-v选项可显示仓库地址
git remote add <repo_name> <url>  添加远程仓库,repo_name为shortname,指代仓库地址
git remote rename <old_name> <new_name>   更名
git remote rm <repo_name>   删除远程仓库
git remote show <repo_name> 查看远程仓库信息
git remote fetch <repo_name>  从远程仓库抓取数据(并不合并)
git pull <repo_name> <branch_name>  拉去数据并合并到当前分支
git push <repo_name> <branch_name>  推送指定分支到指定仓库

点击查看更多内容
35人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
5
获赞与收藏
236

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消