Git使用及企业私服的搭建

Git是一个分布式的版本管理系统,而SVN是一个远程集中式的版本管理系统。

在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

关于SSH:本地仓库可以生成SSH的秘钥(公钥+私钥),本地Git仓库和远程Git仓库之间的传输是通过SSH加密的,因此需要将公钥配置在远程仓库中。

实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。
使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https。

因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦。好在Git考虑到了大家的感受,这个问题解决起来也很简单,在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

客户端安装

  1. linux : yum install git
  2. windows:参见廖雪峰的博客

教程

参见廖雪峰的git教程

常用命令

  • git clone
  • git remote add origin [email protected]:xxx/learngit.git
    • git remote rm origin:删除已有的远程仓库;
  • git push
    • git push -u origin master:由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
    • git push origin master
  • git init
  • git add
    • git add -A 添加所有
  • git commit -m <注释>
  • git status
  • git diff
  • git log:提交历史
    • git log --pretty=oneline
    • git log --graph:可以看到分支合并图。
  • git reset
    • git reset --hard HEAD^
    • git reset --hard 1094a
    • git reset HEAD :git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
  • git reflog:命令历史
  • git checkout
    • git checkout -- file:丢弃工作区的修改,让这个文件回到最近一次git commit或git add时的状态。命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令。
  • git rm

  • git checkout -b dev:git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
    • git branch dev
    • git checkout dev
  • git branch:查看当前分支,git branch命令会列出所有分支,当前分支前面会标一个*号。
    • git branch -d dev:删除dev分支了
  • git merge
    • git merge dev:git merge命令用于合并指定分支到当前分支。

  • git tag
    • git tag:查看所有标签
    • git tag v1.0:在当前分支的HEAD上打标签
    • git tag v0.9 f52c633:在当前分支的指定commit上打标签
    • git tag -d v0.1:删除指定标签
  • git push origin :推送某个标签到远程
    • git push origin --tags:一次性推送全部尚未推送到远程的本地标签

Gogs

企业git私服使用Gogs搭建,其简单易用完档齐全、国际化做的相当不错。Gogs官网下载压缩包,解压之后直接安装:

Linux的安装

  1. 前台运行 ./gogs web
  2. 后台运行 $nohup ./gogs web &
  3. 邮件配置
  4. 定时备份与恢复
  5. 客户端公钥配置及添加

Windows的安装

  1. Gogs在Windows的安装及服务化

你可能感兴趣的:(Git使用及企业私服的搭建)