git命令备查。
从当前目录初始化
$ git init
初始化后,当前目录下创建一个.git目录,所有git需要多数据和资源都在这个目录中。
克隆仓库
$git clone http://****
或者$git clone git://****
要确定哪些文件当前处于什么状态,可以用 git status 命令。如果在克隆仓库之后立即
执行此命令,会看到类似这样的输出:
$ git status
# On branch master
nothing to commit (working directory clean)
这说明你现在的工作目录相当干净。换句话说,当前没有任何跟踪着的文件,也没有任何
文件在上次提交后更改过。此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪
的新文件,否则 Git 会在这里列出来。最后,该命令还显示了当前所在的分支是 master.
使用命令 git add 开始跟踪一个新文件。所以,要跟踪 README 文件,运行:
$ git add README
要查看尚未暂存的文件更新了哪些部分,不加参数直接输入 git diff
单单 git diff 不过是显示还没有暂存起来的改动,而不是这次工作和上次提交
之间的差异.
提交更新
每次准备提交前,先用 git status 看下,是不是都已暂存起来了,然后再运行提交命
令 git commit
$ git commit
这种方式会启动文本编辑器以便输入本次提交的说明。(默认会启用 shell 的环境变量
$EDITOR 所指定的软件,一般都是 vim 或 emacs。
尽管使用暂存区域的方式可以精心准备要提交的细节,但有时候这么做略显繁琐。Git 提
供了一个跳过使用暂存区域的方式,只要在提交的时候,给 git commit 加上 -a 选项,Git
就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤。
在用git来进行版本控制时,我需要执行git commit命令,将索引内容添加到仓库中。
示例1:
git commit -m "提交的描述信息"
如果我们这里不用-m参数的话,git将调到一个文本编译器(通常是vim)来让你输入提交的描述信息
可能一天下来,你对工作树中的许多文档都进行了更新(文档添加、修改、删除),但是我忘记了它们的名字,此时若将所做的全部更新添加到索引中,比较轻省的做法就是:
git commit -a -m "提交的描述信息"
git commit 命令的-a 选项可只将所有被修改或者已删除的且已经被git管理的文档提交倒仓库中。如果只是修改或者删除了已被Git 管理的文档,是没必要使用git add 命令的。
git add .命令除了能够判断出当前目录(包括其子目录)所有被修改或者已删除的文档,还能判断用户所添加的新文档,并将其信息追加到索引中。
另外,要注意的问题是,Git 不会主动记录你对文档进行的更新,除非你对它发号施令(比如通过git add命令)
要想和其他人分享某个分支,你需要把它推送到一个你拥有写权限的远程仓库
git push (远程仓库名) (分支名)
$git push origin master
将你本地代码推送到master仓库
/*****************转自http://blog.csdn.net/iefreer/article/details/7679631**********/
如果系统中有一些配置文件在服务器上做了配置修改,然后后续开发又新添加一些配置项的时候,
在发布这个配置文件的时候,会发生代码冲突:
error: Your local changes to the following files would be overwritten by merge:
protected/config/main.php
Please, commit your changes or stash them before you can merge.
如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
git stash git pull git stash pop
然后可以使用git diff -w +文件名 来确认代码自动合并的情况.
反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset --hard git pull
其中git reset是针对版本,如果想针对文件回退本地修改,使用
- git checkout HEAD file/to/restore
/***********************************************************/
错误描述:
error: object file .git/objects/9a/83e9c5b3d697d12a2e315e1777ceaf27ea1bab is empty
解决方法:
$ rm -fr .git
$ git init
$ git remote add origin your-git-remote-url
$ git fetch
$ git reset --hard origin/master
$ git branch --set-upstream-to=origin/master master