Git使用新手入门

来源:互联网 发布:胖胡斐 淘宝商城 编辑:程序博客网 时间:2024/05/16 09:30

作者:段兴

Git 配置

使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名。

$ git config --global user.name "Scott Chacon"
$ git config --global user.email "schacon@gmail.com"

Clone一个仓库

git clone git://git.kernel.org/pub/scm/git/git.git

创建一个新的仓库
现在假设有一个叫”project.tar.gz”的压缩文件里包含了你的一些文件,你可以用下面的命令让它置于Git的版本控制
管理之下.
$ tar xzf project.tar.gz
$ cd project
$ git init


如何提交一个文件?

1:将文件添加到索引当中去(即暂存区):

$ git add file1 file2 file3

2:将索引中的文件提交到远程仓库

$ git commit

或者使用git commmit -a      来提交暂存区(索引)中的所有的文件。

注意:在上述过程中,可以使用下面的命令来查看暂存区中有哪些文件将被提交:

$ git diff --cached

 

分支使用:

1:创建一个分支(如experimental):

$ git branch experimental

2:查看当前分支列表:

$ git branch

3:切换分支

假定当前分支是master分支,要切换到experimental分支,运行如下命令:

$ git checkout experimental

4:合并分支

假定当前处在master分支下,要将experimental分支合并过来,可使用如下命令:

$ git merge experimental 

注意:合并的过程中,可能会出现冲突,可使用:$git diff 命令查看哪些文件有冲突,然后手动修改冲突。

解决冲突示例:

解决合并中的冲突
如果执行自动合并没有成功的话,git会在索引和工作树里设置一个特殊的状态, 提示你如何解决合并中出现的冲
突。
有冲突(conflicts)的文件会保存在索引中,除非你解决了问题了并且更新了索引,否则执行git commit都会失败:
$ git commit
file.txt: needs merge
如果执行git status 会显示这些文件没有合并(unmerged),这些有冲突的文件里面会添加像下面的冲突标识符:
<<<<<<< HEAD:file.txt
Hello world
=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt
你所需要的做是就是编辑解决冲突,(接着把冲突标识符删掉),再执行下面的命令:
$ git add file.txt
$ git commit
注意:提交注释里已经有一些关于合并的信息了,通常是用这些默认信息,但是你可以添加一些你想要的注释。
上面这些就是你要做一个简单合并所要知道的,但是git提供更多的一些信息来 帮助解决冲突。

撤销一个合并:

如果你觉得你合并后的状态是一团乱麻,想把当前的修改都放弃,你可以用下面的命令回到合并之前的状态:
$ git reset --hard HEAD
或者你已经把合并后的代码提交,但还是想把它们撒销:
$ git reset --hard ORIG_HEAD

5:删除分支:

$ git branch -d experimental

 

日志管理:

1:查看日志

git log命令可以显示所有的提交(commit)的日志信息。

可以添加一些参数,限定git log命令

让git log显示补丁(patchs):

$ git log -p

如果用--stat选项使用'git log',它会显示在每个提交(commit)中哪些文件被修改了

$ git log --stat

可以按你的要求来格式化日志输出。‘--pretty'参数可以使用若干表现格式

$ git log --pretty=oneline

$ git log --pretty=short

2:日志排序

你也可以把日志记录按一些不同的顺序来显示。注意,git日志从最近的提交(commit)开始,并且从这里开始向它们
父分支回溯。如果你要指定一个特定的顺序,可以为git log命令添加顺序参数(ordering option)。

$ git log --pretty=format:'%h : %s' --topo-order --graph

$ git log --pretty=format:'%h : %s' --date-order --graph

也可以用 ‘--reverse'参数来逆向显示所有日志。


分布式工作流程:

1:获取工程代码:

在本机上另外一个开发者目录下clone一份代码

$ git clone /home/alice/project myrepo

也可以从远程获取代码:

git clone git://git.kernel.org/pub/scm/git/git.git


2:对代码进行开发,然后提交。

$ git commit -a

此处,可以开发过程中可以多次重复进行。


3:另一个开发者,可以从远程将其他人提交的修改同步过来。

$ git pull /home/bob/myrepo master

注意:git pull 命令的用法, git pull  本地开发代码   远程代码 

从远程pull代码,一般有两步:

(1):从远程分支(remote branch)抓取被修改的内容

在config文件中定义$ git remote add bob /home/bob/myrepo(使用git remote命令建立了Bob的运程仓库的缩写)

这样就可以使用:$ git fetch bob来完成该第一部分工作。

(2):把修改的内容合并进当前的分支

采用git merge bob/master命令即可。

































0 0