git的使用

来源:互联网 发布:java编程培训费用 编辑:程序博客网 时间:2024/05/22 10:41

git是什么?

git时目前世界上最先进的分布式版本控制系统。

SVN是集中式的版本控制系统,版本库都是集中放在中央服务器,而git是分布式的,它没有中央服务器,每一个电脑就是一个完整的版本库,这样工作的时候就不需要联网了,版本都在自己的电脑上,使用推送的方式把各自修改的内容推送给对方,这样就可以相互看到对象的修改了。

因为git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。

注意:git config --global参数,有了这个参数,表示这台机器上的所有git仓库都会使用这个配置。


git的操作

1、创建版本库

版本库又称为仓库,英文名为repository,可以理解为一个目录。但目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪。

  • 在终端下,我么利用mkdir来创建一个目录称为lwbGit。命令:【mkdir lwbGit】;
  • 创建好目录以后,进入lwbGit目录,然后利用命令:【git init]】将这个目录变为git可以管理的仓库。
工作区:就是在电脑上看到的目录,比如lwbGit里的文件都属于工作区;

版本库(Repository):工作区的一个隐藏目录.git,这个不属于工作区,这是版本库,其中包含了暂存区。
2、git操作用户名与邮箱

  • 用户名和邮箱地址是本地Git客户端的一个变量,不随git库而改变。每次commit都会用用户名和邮箱来记录
  • 查看用户名和邮箱地址:
$git config user.name //查看用户名;
$git config user.email //用户邮箱

  • 修改用户名和邮箱地址:
$git config --global user.name "username"$git config --global user.email "email"
3、git的操作

在版本库lwbGit下新建一个文本文件readme.txt文件,初始内容为“111111”

利用命令将文本添加到暂存区里:

$git add readme.txt
利用命令告诉Git提交到仓库:
$git commit -m "提交说明"
现在,已经将readme.txt文件提交上去了,多个文件可以同时提交。利用下面的命令来查看是否还有文件未提交:
$git status
如果我们继续向文件中添加内容,如果想看文件到底改变了什么,可以利用下面的命令来查看:

$git diff readme.txt
注意,提交到仓库的命令总是为:git add --->git commit -m,其中-m是不能省略的,其标识了文件修改了什么。

如果想查看对文件的历史记录,那么李颖下面的命令:

$ git log
如果日志太多的话,可以利用下面的命令来筛选:

$git log --preety=oneline
如果想使用版本回退操作,那么利用如下命令:

$git reset --hard HEAD^
其中,如果回退到上一个版本,为HEAD^,如果回退到上上个版本,那么为HEAD^^,如果回退到100个之前的版本,那么为HEAD~100即可。

我们可以使用版本号回退(过去或者现在),那么使用如下命令:

$git reset --hard [版本号]
可以利用如下的命令来获取版本号:

$git reflog
利用查到的版本号,可以恢复到任何版本。
如果我们在工作区发现修改的内容有误,也就是说还没有使用add命令区提交,此时,我们利用如下命令来恢复到以前的版本:

$git checkout -- [文件名]
假如,我们现在版本库中多了一个没有用的b.txt文件,那么,可以直接在文件目录中把文件删掉,或者使用如下命令:

$rm b.txt
如果我们想彻底删除这个文件,那么可以执行commit命令提交。只要没有commit之前,我们可以利用如下命令来恢复:

$git checkout -- [文件名]

4、远程仓库

一般远程仓库需要先有gitHub账户,因为你的本地Git仓库和gitHub仓库之间的传输是通过SSH加密的,所以需要进行再gitHub上进行公钥的设置。打开电脑上的终端,来生成ssh-key,命令如下:

ssh-keygen  -t rsa –C “youremail@example.com”
邮箱是你在gitHub上注册时所用的邮箱。具体请看文献[2]中的介绍。设置完成以后,我们就可以在本地不需要密码登录到远程的gitHub上。

5、创建远程仓库

在gitHub上创建新的仓库,注意不要勾选创建ReadMe.md文件,来构造出一个新的仓库。根据github上的提示,在本地运行以下命令:

git remote add origin https://github.com/tugenhua0707/testgit.git

如果我们有多个仓库,仍然想用origin这个名字,那么可以利用如下命令:

$git remote rm origin

然后重新绑定即可,具体请查看文献[3].

由于此时远程仓库是空的,在第一次推送时,我们加一个参数-u,命令如下:

git push -u origin master

加了-u参数,git会将master分支内容推送到远程新的master分支,还会将本地的master和远程的master分支关联起来,以后就可以简化命令了,只需要git push即可。

至此,只要本地做了commit提交,只要通过如下命令:

$git push origin master

把本地的master分支重新推送到github上了,现在就拥有了真正的分布式版本库了。
当我们要从远程仓库有了新内容,我们利用以下命令将其克隆到本地。命令如下:

$git clone https://github.com/UCliwenbin/third.git

注意仓库是自己建立的,所以url要写自己的。


6、创建与合并分支

首先,我们来创建dev分支,然后切换到dev分支上,命令如下:

git checkout -b dev

查看当前分支的命令

$git branch

当前分支的前面会有一个*号。

切换分支命令:

$git checkout dev
当我们在dev分支上完成代码以后,切换到master分支来进行合并,合并的命令如下:

$git merge dev


总结创建与合并分支命令如下:

   查看分支:git branch

   创建分支:git branch name

   切换分支:git checkout name

创建+切换分支:git checkout –b name

合并某分支到当前分支:git merge name

删除分支:git branch –d name

删除远端gitHub上的分支利用命令:git push origin :dev  //其中,origin为远端主机名,dev为分支

下图是github的fork以及Pull request的工作流程图




参考网址:

  1. 手把手教使用Git http://blog.jobbole.com/78960/
  2. mac系统如何生成SSH key与GitHub通信 http://blog.csdn.net/lwb102063/article/details/70157649 
  3. github常见操作和常见错误!错误提示:fatal: remote origin already exists. http://blog.csdn.net/dengjianqiang2011/article/details/9260435



0 0