一、何为Git
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
二、Git与SVN的区别
- Git 是分布式的,SVN 不是。
- Git 把内容按元数据方式存储,而 SVN 是按文件。
- Git 可以创建分支,SVN 只能创建另一个目录。
- Git 没有一个全局的版本号,而 SVN 有。
- Git 的内容完整性要优于 SVN。
三、Git基本概念
- 工作区:电脑上能看到的目录,它持有实际文件。
- 暂存区:它像个缓存区域,临时保存你的改动。
- HEAD:它指向你最后一次提交的结果。
四、Git工作流程
- 克隆 Git 资源作为工作目录。
- 在克隆的资源上添加或修改文件。
- 添加改动到暂存区。
- 在提交前查看改动。
- 提交改动到HEAD。
- 如果发现错误,可以撤回提交。
- 推送本地改动到远端服务器。
五、Git基本操作
-
git init
创建并初始化一个 Git 仓库,之后才能进行其他操作。使用方法:
git init //初始化当前目录为一个 Git 仓库
-
git clone
拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。使用方式:
git clone [url] //其中 [url] 为你想要拷贝的项目
-
git add
添加文件(新增或修改的)到暂存区。使用方式:
git add [doc1] [doc2] ... //添加指定的文件 git add . //添加当前项目的所有文件
-
git status
查看在你上次提交之后是否有修改。使用方式:
git status
-
git diff
查看在你上次提交之后修改内容的详细信息。使用方式:
git diff //查看尚未缓存的改动 git diff --cached //查看已缓存的改动 git diff HEAD //查看已缓存的与未缓存的所有改动 git diff --stat //显示摘要而非整个 diff
-
git commit
将缓存区内容提交到本地仓库中。使用方式:
git commit -m "注释" //提交修改内容并添加注释 git commit -am "注释" //一次性添加和提交修改
-
git reset HEAD
取消已缓存的内容。使用方式:
git reset HEAD [doc1] ... //指定取消的文件
-
git rm
从 Git 中移除某个文件,该文件不再进行跟踪。使用方式:
git rm <file> //移除某个尚未放入暂存区的文件 git rm -f <file> //移除已放入暂存区的文件 git rm -r <dir> //递归删除该目录中的所有子目录和文件
-
git mv
移动或重命名一个文件、目录。使用方式:
git mv <old_file> <new_file> //重命名一个文件 git mv <old_dir> <new_dir> //重命名一个目录
六、Git分支管理
使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
-
创建分支命令
git branch (branchname)
-
删除分支命令
git branch -d (branchname)
-
列出分支命令
git branch
-
切换分支命令
git checkout (branchname)
-
合并分支命令
git merge
七、Git其他命令
-
查看提交记录
git log //列出历史提交记录 git log --oneline //查看历史记录的简洁版本 git log --graph //以拓扑图方式展示历史记录 git log --reverse //逆向显示所有日志 git log --author=用户名 //查找指定用户的提交日志 git log --before={3.weeks.ago} --after={2010-04-18} //查找指定日期的提交日志
-
打上标签
git tag -a v1.0 //给最新一次提交打上"v1.0"的标签 git tag //查看所有标签
八、Github
-
何为Github
github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。 -
Github使用方法
① 注册账户
前往github官网地址:https://github.com/ ,点击“Create a New Repository”。
② 配置Git
首先在本地创建ssh key,执行以下命令ssh-keygen -t rsa -C "your_email@youremail.com"
成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key
回到github上,进入 Account Settings(账户配置),左边选择SSH Keys,Add SSH Key,title随便填,粘贴在你电脑上生成的key
为了验证是否成功,在git bash下输入以下命令ssh -T git@github.com
设置username和email,执行以下命令
git config --global user.name "your name" git config --global user.email "your_email@youremail.com"
③ 添加一个新的远程仓库
git remote add [别名] [url] //其中 [url] 为你想要拷贝的项目。
④ 从远程仓库下载新分支与数据
git fetch
⑤ 把新数据合并到当前分支
git merge
⑥ 推送到远程仓库
git push [alias] [branch] //推送你的新分支与数据到某个远端仓库
⑦ 删除远程仓库
git remote rm [别名]
九、Git服务器搭建
接下来我们将以 Centos 为例搭建 Git 服务器。
-
安装Git
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel yum install git
-
创建一个git用户组和用户
groupadd git useradd git -g git
-
创建证书登录
mkdir /home/git/.ssh chmod 755 .ssh touch .ssh/authorized_keys chmod 644 .ssh/authorized_keys
把需要登录的用户的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
-
初始化Git仓库
mkdir /home/gitrepo chown git:git gitrepo/ cd gitrepo git init --bare runoob.git chown -R git:git runoob.git
-
克隆仓库
git clone git@192.168.45.4:/home/gitrepo/runoob.git