Git学习总结

一、何为Git

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

二、Git与SVN的区别

  1. Git 是分布式的,SVN 不是。
  2. Git 把内容按元数据方式存储,而 SVN 是按文件。
  3. Git 可以创建分支,SVN 只能创建另一个目录。
  4. Git 没有一个全局的版本号,而 SVN 有。
  5. Git 的内容完整性要优于 SVN。

三、Git基本概念

  1. 工作区:电脑上能看到的目录,它持有实际文件。
  2. 暂存区:它像个缓存区域,临时保存你的改动。
  3. HEAD:它指向你最后一次提交的结果。

四、Git工作流程

  1. 克隆 Git 资源作为工作目录。
  2. 在克隆的资源上添加或修改文件。
  3. 添加改动到暂存区。
  4. 在提交前查看改动。
  5. 提交改动到HEAD。
  6. 如果发现错误,可以撤回提交。
  7. 推送本地改动到远端服务器。

五、Git基本操作

  1. git init
    创建并初始化一个 Git 仓库,之后才能进行其他操作。

    使用方法:

    git init //初始化当前目录为一个 Git 仓库
    
  2. git clone
    拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。

    使用方式:

    git clone [url]  //其中 [url] 为你想要拷贝的项目
    
  3. git add
    添加文件(新增或修改的)到暂存区。

    使用方式:

    git add [doc1] [doc2] ...  //添加指定的文件
    git add .  //添加当前项目的所有文件
    
  4. git status
    查看在你上次提交之后是否有修改。

    使用方式:

    git status
    
  5. git diff
    查看在你上次提交之后修改内容的详细信息。

    使用方式:

    git diff           //查看尚未缓存的改动
    git diff --cached  //查看已缓存的改动
    git diff HEAD      //查看已缓存的与未缓存的所有改动
    git diff --stat    //显示摘要而非整个 diff
    
  6. git commit
    将缓存区内容提交到本地仓库中。

    使用方式:

    git commit -m "注释"   //提交修改内容并添加注释
    git commit -am "注释"  //一次性添加和提交修改
    
  7. git reset HEAD
    取消已缓存的内容。

    使用方式:

    git reset HEAD [doc1] ...  //指定取消的文件 
    
  8. git rm
    从 Git 中移除某个文件,该文件不再进行跟踪。

    使用方式:

    git rm <file>     //移除某个尚未放入暂存区的文件
    git rm -f <file>  //移除已放入暂存区的文件
    git rm -r <dir>   //递归删除该目录中的所有子目录和文件
    
  9. git mv
    移动或重命名一个文件、目录。

    使用方式:

    git mv <old_file> <new_file>  //重命名一个文件
    git mv <old_dir> <new_dir>  //重命名一个目录
    

六、Git分支管理

使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

  1. 创建分支命令

    git branch (branchname)
    
  2. 删除分支命令

    git branch -d (branchname)
    
  3. 列出分支命令

    git branch
    
  4. 切换分支命令

    git checkout (branchname)
    
  5. 合并分支命令

    git merge
    

七、Git其他命令

  1. 查看提交记录

    git log                 //列出历史提交记录
    git log --oneline       //查看历史记录的简洁版本
    git log --graph         //以拓扑图方式展示历史记录
    git log --reverse       //逆向显示所有日志
    git log --author=用户名  //查找指定用户的提交日志
    git log --before={3.weeks.ago} --after={2010-04-18}  //查找指定日期的提交日志
    
  2. 打上标签

    git tag -a v1.0  //给最新一次提交打上"v1.0"的标签
    git tag          //查看所有标签
    

八、Github

  1. 何为Github
    github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。

  2. 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 服务器。

  1. 安装Git

    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
    yum install git
    
  2. 创建一个git用户组和用户

    groupadd git
    useradd git -g git
    
  3. 创建证书登录

    mkdir /home/git/.ssh
    chmod 755 .ssh
    touch .ssh/authorized_keys
    chmod 644 .ssh/authorized_keys
    

    把需要登录的用户的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

  4. 初始化Git仓库

    mkdir /home/gitrepo
    chown git:git gitrepo/
    cd gitrepo
    git init --bare runoob.git
    chown -R git:git runoob.git
    
  5. 克隆仓库

    git clone git@192.168.45.4:/home/gitrepo/runoob.git
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值