제인 샤오의 힘내

1.  힘내 설치

 

초기 망할 놈 입니다 리눅스 오랜 기간의 개발에, 힘내 에서만 리눅스 유닉스 시스템에서 실행합니다. 그러나 천천히가 이식 된 윈도우 에. 자, 힘내 수 있습니다 리눅스 , 유닉스 , 윈도우는 이러한 주요 플랫폼에서 실행. 때문에 기계 대부분의 경우의 발전에 , 그래서이 튜토리얼은 설명 할 것이다 에서 자식 설치 및 사용.

 

1.1  소프트웨어 다운로드

다운로드 주소 : https://git-scm.com/download

 

1.2  소프트웨어 설치

1.2.1  설치 창에 자식을

 

 

 

 

 

 

   당신이 망할 놈을 설치하면       모든 방법을 "다음"기본 옵션을 사용합니다.

1.2.2  설치 TortoiseGit (망할 놈의 단순화 패키지)

  그리고 기본 옵션을 사용하는 모든 방법 "다음"과 같이 힘내를 설치합니다.

  중간은 계정과 암호가 생성됩니다

1.2.3  중국어 언어 팩을 설치

    너무

설치 후

 

 

 

 

 중국어 잘 속으로

사용 힘내 파일 버전을 관리

2.1  저장소 만들기

그것의 저장소는 무엇입니까? 또한 영어 이름으로 알려진 창고 저장소, 저장소가 , 당신은 단순히 디렉토리로 이해할 수 있으며,이 디렉토리에있는 모든 파일이 내부 될 수 있습니다 힘내 , 관리 각 파일을 수정, 삭제 망할 놈의 어느 순간을 추적 할 수 있도록 추적 할 수 있습니다 역사는, 또는 당신은 미래의 어떤 시점에서 "복원"할 수 있습니다. 때문에 자식이 분산 버전 관리 도구, 그래서이다 이눔 또한 네트워크가 필요없는 전체 버전 관리 기능을 가지고있다.

저장소를 생성하는 것은 매우 간단합니다, 당신이 사용할 수있는 자식 bash는 또한 사용할 수 있습니다 TortoiseGit을 . 먼저, 빈 디렉토리를 만들고, 적당한 장소를 선택 ( D를 : \ 임시 \ 자식 \ 저장소 ).

2.1.1  사용 GitBash

현재 디렉토리에 선택 항목을 마우스 오른쪽 단추로 클릭 힘내 배쉬 시작합니다.

 

 

 

또는 시작 메뉴에서 시작합니다. 참고 그것은 시작 메뉴에서 실행되는 경우 gitbash의 창고가있는 디렉토리로 디렉토리를 변경해야합니다.

 

 

 

창고는 명령을 실행 만들기 :

$ 자식 초기화

2.1.2 使用TortoiseGit

使用TortoiseGit时只需要在目录中点击右键菜单选择“在这里创建版本库”

 

 

 

 

 

 

 

 

 创建完之后就会出现.git的文件

 

 

 

如果看不见设置这里

 

 

 

2.2  添加文件

2.2.1 添加文件过程

D:\temp\git\repository目录下创建一个mytest.txt文件

 

 

 

 

 

 

文本文件变为带+”号的图标:

 

 

 

 

提交文件:在mytest.txt上再次点击右键选择“提交”,此时将文件保存至版本库中。

 

 

 

 

 

 

 

 

 

2.2.2 工作区和暂存区

Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。

什么是工作区(Working Directory)?

工作区就是你在电脑里能看到的目录,比如我的reporstory文件夹就是一个工作区。

有的同学可能会说repository不是版本库吗怎么是工作区了?其实repository目录是工作区,在这个目录中的“.git”隐藏文件夹才是版本库。这回概念清晰了吧。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

如下图所示:

 

 

 

分支和HEAD的概念我们稍后再讲。前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

 

因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

 

2.1 修改文件

2.1.1 提交修改

被版本库管理的文件不可避免的要发生修改,此时只需要直接对文件修改即可。修改完毕后需要将文件的修改提交到版本库。

mytest.txt文件上点击右键,然后选择“提交”

 

 

 

 

 

 

 

 

 

2.3.2 查看修改历史

在开发过程中可能会经常查看代码的修改历史,或者叫做修改日志。来查看某个版本是谁修改的,什么时间修改的,修改了哪些内容。

可以在文件上点击右键选择“显示日志”来查看文件的修改历史。

 

 

 

 

 

 

2.3.3 差异比较

当文件内容修改后,需要和修改之前对比一下修改了哪些内容此时可以使用“比较差异功能”

 

 

 

2.3.4 还原修改

当文件修改后不想把修改的内容提交,还想还原到未修改之前的状态。此时可以使用“还原”功能

 

 

 

 

 

 

 

 

 

注意:此操作会撤销所有未提交的修改,所以当做还原操作是需要慎重慎重!!!

2.4 删除文件

需要删除无用的文件时可以使用git提供的删除功能直接将文件从版本库中删除。

 

 

 

2.5 案例:将java工程提交到版本库

第一步:将参考资料中的java工程project-test复制到工作目录中

 

 

第二步:将工程添加到暂存区。

 

 

 

 

 

 

 

点击确定完成暂存区添加。

三、忽略文件或文件夹

在此工程中,并不是所有文件都需要保存到版本库中的例如“bin”目录及目录下的文件就可以忽略。好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

如果使用TortoiseGit的话可以使用菜单项直接进行忽略。

 

 

 

 

选择保留本地文件。完成后在此文件夹内会多出一个.gitignore文件,这个文件就是文件忽略文件,当然也可以手工编辑。其中的内容就是把bin目录忽略掉。

 

 

 

四、提交代码

将代码添加到master分支上,其中.gitignore文件也需要添加到暂存区,然后提交到版本库。

 

2.1 忽略文件语法规范

空行或是以 # 开头的行即注释行将被忽略。

可以在前面添加正斜杠 / 来避免递归,下面的例子中可以很明白的看出来与下一条的区别。

可以在后面添加正斜杠 / 来忽略文件夹,例如 build/ 即忽略build文件夹。

可以使用 ! 来否定忽略,即比如在前面用了 *.apk ,然后使用 !a.apk ,则这个a.apk不会被忽略。

* 用来匹配零个或多个字符,如 *.[oa] 忽略所有以".o"".a"结尾, *~ 忽略所有以 ~ 结尾的文件(这种文件通常被许多编辑器标记为临时文件); [] 用来匹配括号内的任一字符,如 [abc] ,也可以在括号内加连接符,如 [0-9] 匹配09的数; ? 用来匹配单个字符。

看了这么多,还是应该来个栗子:

# 忽略 .a 文件

*.a

# 但否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件

!lib.a

# 仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO

/TODO

# 忽略 build/ 文件夹下的所有文件

build/

# 忽略 doc/notes.txt, 不包括 doc/server/arch.txt

doc/*.txt

# 忽略所有的 .pdf 文件 在 doc/ directory 下的

doc/**/*.pdf

远程仓库

3.1 添加远程库

现在我们已经在本地创建了一个Git仓库,又想让其他人来协作开发,此时就可以把本地仓库同步到远程仓库,同时还增加了本地仓库的一个备份。

常用的远程仓库就是githubhttps://github.com/,接下来我们演示如何将本地代码同步到github

3.1.1 github上创建仓库

首先你得在github上创建一个账号,这个就不演示了。然后在github上创建一个仓库:

 

 

 

 

点击“create repository”按钮仓库就创建成功了。

Github支持两种同步方式“https”和“ssh”。如果使用https很简单基本不需要配置就可以使用,但是每次提交代码和下载代码时都需要输入用户名和密码。如果使用ssh方式就需要客户端先生成一个密钥对,即一个公钥一个私钥。然后还需要把公钥放到githib的服务器上。这两种方式在实际开发中都用应用,所以我们都需要掌握。接下来我们先看ssh方式。

 

3.2.2 ssh协议

3.1.2.3 什么是ssh?

SSH Secure Shell(安全外壳协议)的缩写,由 IETF 的网络小组(Network Working Group)所制定。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

1.1.1.2 基于密匙的安全验证

使用ssh协议通信时,推荐使用基于密钥的验证方式。你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。

1.1.1.3 ssh密钥生成

windows下我们可以使用 Git Bash.exe来生成密钥,可以通过开始菜单或者右键菜单打开Git Bash

 

 

 

 

git bash 执行命令,生命公钥和私钥

命令: ssh-keygen -t rsa

 

 

执行命令完成后,window本地用户.ssh目录C:\Users\用户名\.ssh下面生成如下名称的公钥和私钥:

 

 

3.1.2.4 ssh密钥配置

密钥生成后需要在github上配置密钥本地才可以顺利访问。

 

 

 

 

key部分将id_rsa.pub文件内容添加进去,然后点击“Add SSH key”按钮完成配置。

3.1.3 同步到远程仓库

同步到远程仓库可以使用git bash也可以使用tortoiseGit

 

3.1.3.1 使用git bash

在仓库所在的目录(D:\temp\git\repository)点击右键选择“Git Bash Here”,启动git bash程序。

 

 

然后在git bash中执行如下语句:

git remote add origin [email protected]:sublun/mytest.git

git push -u origin master

注意:其中红色字体部分需要替换成个人的用户名。

 

如何出现如下错误:

 

 

可以先执行如下命令,然后再执行上面的命令

$ git remote rm origin

 

 

3.3.2 使用TortoiseGit同步

一、由于TortoiseGit使用的ssh工具是“PuTTYgit Bash使用的ssh工具是“openSSH”,如果想让TortoiseGit也使用刚才生成的密钥可以做如下配置:

 

 

Url:远程仓库的地址

推送URL:也是相同的

Putty密钥:选择刚才生成的密钥中的私钥

 

二、同步。在本地仓库的文件夹中单击右键,选择Git同步”

 

 

 

 

3.2 从远程仓库克隆

克隆远程仓库也就是从远程把仓库复制一份到本地,克隆后会创建一个新的本地仓库。选择一个任意部署仓库的目录,然后克隆远程仓库。

3.2.1 使用git bash

$ git clone [email protected]:sublun/mytest.git

3.2.2 使用TortoiseGit

在任意目录点击右键:

 

 

 

 

 

 

3.3从远程仓库取代码

Git中从远程的分支获取最新的版本到本地有这样2个命令:

  1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge(合并代码)
  2. git pull:相当于是从远程获取最新版本并merge到本地

上述命令其实相当于git fetch git merge

在实际使用中,git fetch更安全一些

因为在merge前,我们可以查看更新情况,然后再决定是否合并

如果使用TortoiseGit的话可以从右键菜单中点击“拉取”(pull)或者“获取”(fetch

 

 

3.4 搭建私有Git服务器

3.4.1 服务器搭建

远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改。GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。

搭建Git服务器需要准备一台运行Linux的机器,在此我们使用CentOS。以下为安装步骤:

1、安装git服务环境准备

yum -y install curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel gcc cc

2、下载git-2.5.0.tar.gz

1)解压缩

2cd git-2.5.0

3autoconf

4./configure

5make

6make install

3、添加用户

adduser -r -c 'git version control' -d /home/git -m git

此命令执行后会创建/home/git目录作为git用户的主目录。

5、设置密码

passwd git

输入两次密码

6、切换到git用户

su git

7、创建git仓库

git --bare init /home/git/first

注意:如果不使用--bare”参数,初始化仓库后,提交master分支时报错。这是由于git默认拒绝了push操作,需要.git/config添加如下代码:

[receive]

      denyCurrentBranch = ignore

推荐使用:git --bare init初始化仓库。

 

3.4.2 连接服务器

私有git服务器搭建完成后就可以向连接github一样连接使用了,但是我们的git服务器并没有配置密钥登录,所以每次连接时需要输入密码。

使用命令连接:

$ git remote add origin ssh://[email protected]/home/git/first

这种形式和刚才使用的形式好像不一样,前面有ssh://前缀,好吧你也可以这样写:

$ git remote add origin [email protected]:first

 

使用TortoiseGit同步的话参考上面的使用方法。

分支管理

4.1 创建合并分支

在我们每次的提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD指针严格来说不是指向提交,而是指向mastermaster才是指向提交的,所以,HEAD指向的就是当前分支。

一开始的时候,master分支是一条线,Gitmaster指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:

추천

출처www.cnblogs.com/rzbwyj/p/12103458.html