GIT 基础 &本地服务器搭建

Git是一款免费、开源的分布式版本控制系统。众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个较好的选择,本文将对此进行详细讲解。(推荐一家提供私有源代码免费托管的网站:Bitbucket,目前支持一个项目5个成员).

Git支持本地(local)、ssh、git和http(s)这四种协议进行传输.  ssh协议不利于开源,适合公司团队使用。

有两种方式可以建立git版本控制,1)git init,在本地建立 2)git clone命令,克隆远程的目录。ref: 点击打开链接

Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享),但是SSH有客户端服务器端,所以在windows下的开发要把自己的Git仓库共享出去的话,就必 须做SSH服务器.

《Gitblit》是一款应用软件,支持Linux系统. gitblit需要java运行环境(JRE)或java开发工具(JDK)7.  Gitblit 是一个纯 Java 库, 用来管理、查看和处理 Git 资料库. 相当于 Git 的 Java 管理工具.git的管家.


http://www.jb51.net/os/windows/210388.html

https://www.cnblogs.com/linsanshu/p/5512038.html

https://blog.csdn.net/chenxiqilin/article/details/53676992

https://blog.csdn.net/qwer971211/article/details/71156055

参考手册:https://git-scm.com/book/en/v2

GIT下载:https://git-scm.com/download/win

TortoiseGit--小乌龟git项目


Frank 实践总结:

1 在自己电脑本地管理自己个人代码的版本:

gitbash切换目录至自己的工程文件夹下,运行git init,会在文件夹下生成一个.git文件。就这么简单。然后,运行git status会提示没有被追踪的文件和文件夹(如果文件夹是空的,则不会提示)。

然后,用git add 将希望追踪的文件和文件夹进行追踪。可以一个一个地追踪,例如git add file1 file2, 也可以直接使用git add .直接将所有的文件和文件夹进行添加。(另,可以用git reset --mixed将添加的所有文件退出暂存区,保留原修改。)。

如果修改了自己的某个已经被add的文件,再运行git status则会提示该文件被修改,可以用git add将修改更新至缓存区,然后再git status,这时就不会提示有文件被修改了,直接提示“changes to be committed”。

git status命令可以列出当前目录所有还没有被git管理的文件和被git管理且被修改但还未提交(git commit)的文件。

然后用git commit -m "string",将add至缓存区的文件提交。commit之后,运行git log(或git reflog,简略信息)会显示出commit的记录。

版本回退:

可以选运行git reflog,然后git reset --hard xxxx(xxxx为commit id的前几位)。回退成功之后,自己本地的工程文件就会返回到之前的状态啦。

由于是在自己电脑本地进行管理版本,没有远程目录,因此git push没有必要使用,使用不了。

2 git diff指令

1)git diff比较的是文件与缓存区中的文件的区别;

  git diff filename 比较指定文件

2)git diff --cached比较的是已经add但是还没有commit的区别。

git diff --cached filename比较制定文件的差异

3)查看任意两个版本之间的改动:

    git diff 版本号码1 版本号码2 (版本号2是作为改动后文件 与 版本1的文件进行比较,显示出的+xx,表示版本2比版本1增加了xx)

    版本号可以是commit id

git diff 版本号码1 版本号码2 filename 查看某个文件在两个版本中的差异

4)git diff的输出信息分析:

 $ git diff  
  
显示结果如下:  
      diff --git a/f1 b/f1  
      index 6f8a38c..449b072 100644  
      --- a/f1  
      +++ b/f1  
      @@ -1,7 +1,7 @@  
       a  
       a  
       a  
      -a  
      +b  
       a  
       a  
       a  
  
第一行表示结果为git格式的diff。  
  
      diff --git a/f1 b/f1  
  
进行比较的是,a版本的f1(即缓存区中存储的)和b版本的f1(即工作区中被我改变后的)。  
  
第二行表示两个版本的git哈希值(index区域的6f8a38c对象,与工作目录区域的449b072对象进行比较),最后的六位数字是对象的模式(普通文件,644权限)。  
  
      index 6f8a38c..449b072 100644  
  
第三行表示进行比较的两个文件。  
  
      --- a/f1  
      +++ b/f1  
  
"---"表示a版本,"+++"表示b版本。  
  
后面的表示,在源文件第1行开始的7行和目标文件第1行开始的7行构成一个差异小结。b版本相对于a版本 删除了a,增加了b  
  
      @@ -1,7 +1,7 @@  
       a  
       a  
       a  
      -a  
      +b  
       a  
       a  
       a  

3. git branch 

   git branch 用于常看本地的分支名; git branch  -r 查看远程的分支名,


posted @ 2018-04-19 10:29  JadeCicada  阅读(197)  评论(0编辑  收藏  举报