Git命令速览----git笔记

版本控制系统(VCS

在 Git 中的绝大多数操作都只需要访问本地文件和资源,不用连网。但如果用 CVCS 的话,差不多所有操作都需要连接网络。因为 Git 在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。

对于任何一个文件,在 Git 内都只有三种状态:已提交(committed)已修改(modified)已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。


基本的 Git 工作流程如下:

  1. 在工作目录中修改某些文件。
  2. 对修改后的文件进行快照,然后保存到暂存区域。
  3. 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。

请记住,工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪。已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区。而所有其他文件都属于未跟踪文件。它们既没有上次更新时的快照,也不在当前的暂存区域。初次克隆某个仓库时,工作目录中的所有文件都属于已跟踪文件,且状态为未修改。


Git命令汇总:

<strong>$ git add README </strong>跟踪新文件,提交修改的文件到暂存区        // 实际上 Git 只不过暂存了你运行 git add 命令时的版本,如果现在提交,那么提交的是添加注释前的版本,而非当前工作目录中的版本。

$ git reset HEAD <file>... 的方式取消暂存。

$git checkout -- benchmarks.rb取消对文件的修改

$ git status查看文件状态

$git diff   显示还没有暂存起来的改动,而不是这次工作和上次提交之间的差异。所以有时候你一下子暂存了所有更新过的文件后,运行 git diff 后却什么也没有,就是这个原因。

 $git diff --cached 命令,看已经暂存起来的文件和上次提交时的快照之间的差异。

 $git commit $ git commit -m "Story 182: Fix benchmarks for speed",暂存区域已经准备妥当可以提交了。在此之前,请一定要确认还有什么修改过的或新建的文件还没有 git add 过,否则提交的时候不会记录这些还没暂存起来的变化。所以,每次准备提交前,先用 git status 看下,是不是都已暂存起来了,然后再运行提交命令

$ git commit -a -m 'added new benchmarks',跳过暂存区直接提交

$git rm 删除文件。如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f(译注:即 force 的首字母),以防误删除文件后丢失修改的内容。另外一种情况是,我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。换句话说,仅是从跟踪清单中删除。比如一些大型日志文件或者一堆 .a 编译文件,不小心纳入仓库后,要移除跟踪但不删除文件,以便稍后在 .gitignore 文件中补上,用 --cached 选项即可:

$ git rm --cached readme.txt,说明见上一条

$ git mv file_from file_to移动文件

$git log 显示提交记录。 常用 -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新;--stat,仅显示简要的增改行数统计

$ git commit –amend,修改最后一次提交。想要撤消刚才的提交操作,可以使用 --amend 选项重新提交

远程仓库:

$git remote  要查看当前配置有哪些远程仓库,可以用 git remote 命令也可以加上 -v 选项(译注:此为 --verbose 的简写,取首字母),显示对应的克隆地址

$ git remote add [shortname] [url]    要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用

$ git fetch [remote-name] 此命令会到远程仓库中拉取所有你本地仓库中还没有的数据。运行完成后,你就可以在本地访问该远程仓库中的所有分支,将其中某个分支合并到本地,或者只是取出某个分支,一探究竟。

$git push [remote-name] [branch-name] 可以将本地仓库中的数据推送到远程仓库。只有在所克隆的服务器上有写权限,或者同一时刻没有其他人在推数据,这条命令才会如期完成任务。如果在你推数据前,已经有其他人推送了若干更新,那你的推送操作就会被驳回。你必须先把他们的更新抓取到本地,合并到自己的项目中,然后才可以再次推送。

$git remote show [remote-name] 查看某个远程仓库的详细信息

$git remote rename 命令修改某个远程仓库在本地的简称

$git remote rm删除远程仓库

git分支:

Git 中的分支,其实本质上仅仅是个指向commit 对象的可变指针。

$ git branch branchname 新建一个  分支,可以使用 git branch 命令:

$ git checkout testing   要切换到其他分支,可以执行 git checkout 命令。我们现在转换到新建的 testing 分支.

$ git checkout -b iss53  新建并切换到该分支,运行 git checkout 并加上 -b 参数

$git merge  有必要作些测试,确保修补是成功的,然后回到 master 分支并把它合并进来,然后发布到生产服务器。用 git merge 命令来进行合并:

$ git checkout master

$ git mergehotfix

//任何包含未解决冲突的文件都会以未合并(unmerged)的状态列出

$ git branch -d hotfix删除分支

$ git fetch origin 同步远程服务器上的数据到本地。

$git push (远程仓库名) (分支名) 创建远程分支

$git push [远程名] :[分支名]删除远程分支

  $git push [远程名] [本地分支]:[远程分支] 提取本地分支然后把它变成远程分支

     git push [远程名] [本地分支]:[远程分支] 语法,如果省略 [本地分支],那就等于是在说“在这里提取空白然后把它变成[远程分支]”。


详细内容请阅读Git文档:Pro Git(中文版)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值