Git的一些使用技巧

用的东西越多,越写不出好文章……今天使用Git,发现一次的生疏,正好补补课。

一.不废话,还是先git –help 看看帮助文档吧。

add Add file contents to the index

添加文件到本地索引区(分布式版本管理工具都是这样,每个客户端的数据都是完整的)。

bisect Find by binary search the change that introduced a bug

通过二分查找,找到更新引入的bug。很好用的方法,比如更新版本后发现有个bug,你要回头一个文件一个文件看估计会累死。用bisect可以用二分的办法,把版本定位到二分位置。然后再测试,最后能很快的找到引入bug的那次提交。

branch List, create, or delete branches

分支管理用。增删改查

checkout Checkout a branch or paths to the working tree

迁出一个分支或者路径,覆盖本地。比如本地修改了a文件,想还原,可用git checkout a文件。该操作为一次性操作,还原后修改的数据会丢失。

clone Clone a repository into a new directory

从一个链接或者路径克隆一个版本。

commit Record changes to the repository

将更改提交到本地仓库。简单理解:将add到索引区中的文件,提交到本地仓库。

diff Show changes between commits, commit and working tree, etc

对比两个文件,二进制文件都可对比,比如excel。

fetch Download objects and refs from another repository

从其他仓库下载数据到本地。通常是从远程获取到本地,获取之后还需要通过merge合并本地才能看到更改。不想如此麻烦可直接用git pull( 相当于fetch + merge)

grep Print lines matching a pattern

全文查找。

init Create an empty Git repository or reinitialize an existing one

创建一个空的Git仓库。

log Show commit logs

显示提交日志

merge Join two or more development histories together

合并两个版本,分支或者两个文件。

mv Move or rename a file, a directory, or a symlink

删除一个文件或者重命名。

pull Fetch from and integrate with another repository or a local branch

获取远程版本并合并

push Update remote refs along with associated objects

与pull相反,将本地分支的更新推送到远程

rebase Forward-port local commits to the updated upstream head

重新修改本地的所有提交,然后更新到头结点。该功能我也不大懂,请用过的朋友指点。

reset Reset current HEAD to the specified state

重设头结点。

rm Remove files from the working tree and from the index

删除提交或者未提交的文件

show Show various types of objects

显示代码的改动情况。

status Show the working tree status

查看目前工作目录的代码状态,自上次提交以来的添加、修改和删除等。

tag Create, list, delete or verify a tag object signed with GPG

管理标签

今天本地使用git pull命令一直提示失败,于是采用暴力法直接git reset –hard,再git pull。我个人还是喜欢用svn一些,配合乌龟能节省大量的时间。对于新人来说,使用git出现一些问题通常得花大半天的时间来解决,解决后又得花大量时间去学习才能理解原理。