标签:c style class blog code http
引用:
$ git init #初始化git,在git命令行下通过ls -a可以看到.git文件 $ git add . #把所有的文件添加到git暂存区里
$ git reset --hard #恢复之前的版本
$git add readme.txt #添加
$git rm file #删除文件
$git mv file1 file2 #移动文件
$git log -n #查看最近提交信息
完整的提交信息
1
2
3
4
5 |
commit 766f9881690d240ba334153047649b8b8f11c664 Author: Bob <bob@example.com> Date: Tue Mar 14 01:59:26 2000 -0800 Replace printf() with write(). |
$ git reset --hard 766f #来恢复到一个指定的提交状态,其中766f....是hash值,不用全输入。
$git checkout 82f5 #跳转到一个指定的状态
$ git checkout master #回到主分支
git reset
--hard
: 加载一个旧记录并删除所有比之新的记录。git
checkout
: 加载一个旧记录,但如果你在这个记录上玩,游戏状态将偏离第
一轮的较新状态。你现在打的所有游戏记录会在你刚进入的、代表另一个真实的分支里。$ git checkout master~5 #回到倒数第五个保存状态
这些操作都不会提交新的记录,通过git log是无法查看到的。
$ git revert 1b6d #讲撤销给定哈希值的提交。本撤销被记录为一个新的提交,你可以通过运行 git log 来确认这一点。
$ git clone git://server/path/to/files
$ git pull
找出自从上次提交之后你已经做了什么改变:
$ git diff
或者自昨天的改变:
$ git diff "@{yesterday}"
或者一个特定版本与倒数第二个变更之间:
$ git diff 1b6d "master~2"
输出结果都是补丁格式,可以用 git apply 来把补丁打上。也可以试一下:
$ git whatchanged --since="2 weeks ago"
练习
至少有三个解决方案。假设我们在D:
A与B的差别是那些删除的文件。我们可以创建一个补丁代表这些差别,然后吧补丁 打上:
$ git diff B A | git apply
既然这些文件存在A,我们可以把它们拿出来:
$ git checkout A foo.c bar.h
我们可以把从A到B的变化视为可撤销的变更:
$ git revert B
标签:c style class blog code http
原文地址:http://www.cnblogs.com/xiaoxiaoCS/p/3754205.html