简介
- Coding尤其是协同开发(Collaborative project)都离不开代码版本管理工具,版本管理工具的主要作用是:备份文件、记录历史、方便回退、多端共享等。
- 常见的版本管理工具包括集中式的svn和分布式的git,共同的始祖是cvs,集中式(cvs svn)需要中心服务器,需要联网,分布式拥有版本库即可(git)。
- github 是网站托管,是基于git,用于大量开源项目的版本管理上,本文主要整理了最常用的git命令,希望对学习使用git的朋友有所帮助。
GitHub仓库的创建
- 注册一个github账号
- 创建一个新仓库 +new repository
- 拷贝仓库的url 点击clone URL
sudo apt-get install git
或软件包管理器安装:
安装成功后可以git –help查看命令
检出
- 检出checkout一个已创建的仓库:
$ git clone https://github.com/applefly/demo.git - 或创建一个新的本地仓库:
$ git init - 修改,提交前查看工作区的状态:
$ git status - 未新增文件建立跟踪
$ git add - 添加变更评论, 查看状态,提交到本地工作服务区
$ git commit - 把当前分支中未提交的修改移动到其他分支
git stash
git checkout branch2
git stash pop
搜索
- 在工作区中查找文本内容:
$ git grep “demo” - 版本中搜索:
$ git grep “demo” v2.5
查看历史
- 显示所有的提交记录(包括hask、作者、提交的标题和时间):
$ git log - 显示所有提交(仅显示提交的hash和message):
$ git log –oneline - 显示某个用户的所有提交:
$ git log –author=”username” - 显示某个文件的所有修改:
$ git log -p
分支与标签
- 列出所有的分支:
$ git branch - 切换分支:
$ git checkout - 创建并切换到新分支:
$ git checkout -b - 基于远程分支创建新的可追溯的分支:
$ git branch –track - 删除本地分支:
$ git branch -d - 给当前版本打标签:
$ git tag
更新
- 显示远程端的信息:
$ git remote show - 下载远程端版本,并自动与HEAD版本合并:
$ git remote pull - 将远程端版本合并到本地版本中:
$ git pull origin master
发布
- 发布到远程端,推送到github中:
$ git push remote - 发布标签:
$ git push –tags
撤销
- 放弃工作目录下的所有修改:
$ git reset –hard HEAD - 移除缓存区的所有文件(i.e. 撤销上次git add):
$ git reset HEAD - 放弃某个文件的所有本地修改:
$ git checkout HEAD
备注
- 本文只是整理了部分git常用的指令,而且只涉及了linux下的git操作,至于客户端的操作,由于比较简单,就忽略了,需要的朋友可自行进行学习使用。另外谢谢flyhigher139同学在github上共享的git指令整理。