Git操作(1)-基础命令

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修定情况的系统。从刚开始的本地版本控制系统(如RCS),到集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS)如(CVS、Subversion),发展到如今的分布式版本控制系统(Distributed Version Control System,简称 DVCS)(如Git、Mercurial、Bazaar 以及 Darcs 等)。 在DVCS中,客户端并不只是提取最新版本的文件快照,而是把代码仓库完整的克隆下来。这样不用考虑服务器是否会出现问题,都可以用任何一个镜像出来的本地仓库恢复。

Git基本知识

Git特性
  1. 直接记录文件快照,而非比较文件差异
  2. 近乎所有操作都是本地执行
  3. 时刻保持数据完整性(使用SHA-1算法对文件或目录结构计算得出SHA-1哈希值,当作指纹字符串。由40个字符组成(0-9a-f)
  4. 多数操作仅仅是把数据添加到数据库
文件的三种状态

已提交 committed 文件已保存在本地数据库中
已修改 modified 修改了某个文件,还未提交
已暂存 staged 把已修改的文件放在下次提交时要保存的清单中

文件的三个工作区域
  1. 工作目录
  2. 暂存区域
  3. 本地仓库
基本的 Git 工作流程如下
  1. 在工作目录中修改某些文件。
  2. 对修改后的文件进行快照,然后保存到暂存区域。
  3. 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中

git基本操作

初始化仓库
git init

从现在仓库克隆
git clone git://github.com/schacon/grit.git

检查当前文件状态
git status

添加跟踪文件(添加README.md文件)
git add <filename>

git diff 各个区别

工作目录 和 暂存区 改动
git diff

暂存区 和 本地仓库(git add为暂存区) 改动
git diff --staged

工作目录 和 本地仓库 改动
git diff <commit> <filename>

本地仓库 和 本地仓库 改动
git diff <commit> <commit>

暂存区 和 本地仓库 最后一次提交 改动
git diff --staged -a

移除文件
git rm <filename>

取消对文件的跟踪,但不删除当前文件
git rm --cached <filename>

查看最近的3次提交历史
git log -3

提交文件到本地
git commit -m '第一次提交'

添加修改文件到最后一次提交(提交之后发现漏掉了文件没有添加)
git commit --amend

取消已经暂存的文件
git reset head <filename>

取消对文件的修改
git checkout -- <filename>

恢复文件

本地代码跳转到某次提交 git reset --hard HEAD~1

反转提交,取消历史提交。相当于用一个新提交来消除一个历史提交所做的任何修改。 恢复 888e26 次提交,使用下面的命令,再push到服务器即可 git revert 888e26

git reset revert 回退回滚取消提交返回上一版本

本地分支操作

创建新分支
git checkout -b issue53

添加-b参数相当于:
git branch issue53 git checkout issue53

切换到分支
git checkout issue53

合并本地分支
git merge issue53

删除本地分支
git branch -d issue53

git远程分支操作

查看远程仓库
git remote -v

添加远程仓库git remote add [shortname] [url]
git remote add pb git://github.com/paulboone/ticgit.git

同步服务器的数据到本地
git fetch origin

推送本地分支到远程分支 git push (远程仓库名) (分支名)
git push origin serverfix

拉取分支代码 git featch origin

合并远程分支
git merge origin/serverfix

合并远程分支
git pull origin bugfix 相当于同时执行featchmerge

从远程分支创建本地分支git checkout -b [分支名] [远程名]/[分支名]
git checkout -b serverfix origin/serverfix 或者 git checkout --track origin/serverfix

删除远程分支,语法git push [远程名] [本地分支]:[远程分支]
git push origin :serverfix

查看远程分支列表
git branch -r

查看本地分支和远程分支关联
git branch -vv

将本地分支与远程分支进行关联(–set-upstream-to 最终修改的 .git/config 文件)
git branch --set-upstream-to=origin/cbranch

之前git操作时,本地从主分支开了一个新分支后,新分支在studio图形界面提交时老是需要手动输入运程分支名称,问题是没有将新分支与远程分支进行关联,关联后图形界面提交正常。

git标签

列出已有的标签
git tag

显示相应标签的版本信息
git show v1.4

新建含附注的标签 annotated
git tag -a v1.4 -m 'my version 1.4'

新建轻量级的标签 lightweight
git tag v1.4-lw

推送所有tag到服务器
git push --tags git push orign <tag_name>

3.5 Git 分支 - 远程分支
3.2 Git 分支 - 分支的新建与合并
Git - 新建本地分支与远程分支关联问题
起步 - Git 基础
git忽略文件
Git:git diff 命令详解
读懂diff

Passer avatar
About Passer
Empty
comments powered by Disqus