Git学习

来源:互联网 发布:mac如何切换搜狗输入法 编辑:程序博客网 时间:2024/06/03 14:36

Git-分布式版本控制系统

本文根据廖雪峰老师的git教程总结得到。http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

  • 安装Git
  • 创建Git仓库
  • 本地仓库
  • 远程仓库
  • 分支管理
  • 标签管理
  • Git服务器搭建

安装Git

  1. Linux:sudo apt-get install git
    Windows:下载安装msysgit
  2. 安装完成后,配置
    git config –global user.name “yourname”
    git config –global user.email “email@example.com”

创建Git仓库

  1. 创建目录          
  2. 将目录转为仓库:终端进入该目录,输入  git init
  3. 添加文件到该目录/子目录下
  4. 添加该文件至仓库            git add 文件名
                        git commit -m “本次提交的说明”

本地仓库

查看 :

git status 查看仓库当前状态 git diff 文件名 查看修改前后内容变化 git log 查看版本修改信息 git reflog 查看每次修改 git log –pretty=oneline 每个版本修改信息均用一行列出 cat 文件名 查看文本内容

回退版本:

git reset –hard HEAD 当前版本 HEAD^ 回退到上个版本 HEAD~100 回退到上100个版本 commit id 回退到id为commit id的版本

撤销修改:

git checkout – 文件名 撤销工作区更改文件的状态至stage状态(若有)或master分支状态 git reset HEAD file 撤销stage暂存区内容的修改

删除文件:

rm 文件名 删除工作区的文件 git rm 文件名 删除版本库中的文件,删除后应git commit -m添加说明 git checkout – 文件名 从分支恢复至工作区

远程仓库

github

  1. 在计算机创建SSHkey:ssh-keygen -t rsa -C “youremail@example.com”
  2. 在Github个人设置Accout setting添加SSH key,内容为本地.ssh中id.rsa.pub中内容
  3. 在Github创建仓库
  4. 将本地仓库上传至Github:  git remote add origin Github仓库地址
                  git push -u origin 分支名
    以后上传输入:         git push origin 分支名
  5. 将Github仓库克隆至本地: git clone git@github.com :Github仓库地址(去除https://github.com/,sh)
                或   git clone 仓库地址(https)

分支管理

git branch 分支名 创建分支 git checkout 分支名 切换分支 git checkout -b分支名 创建并切换分支 git branch 查看当前分支 git branch -d 分支名 删除指定分支 git branch -D 分支名 强行删除分支 git merge 分支名 合并指定分支至当前分支。合并分支发生冲突时,修改冲突文件,重新提交

通常合并分支时,Git会用fast forward模式,删除分支后会丢失分支信息。可以用–no -ff 强制禁用fast forward模式。此时会生成一个新commit。
        git merge –no -ff -m “本次提交说明”

Bug分支

在当前分支工作未完成时接到修复Bug任务

  1. 保存当前工作现场,git stash,Git把stash内容储存起来
  2. 切换到有Bug的分支
  3. 建立新分支,修复,合并
  4. 切换回1中分支,回复工作现场
git stash apply 恢复工作现场,不删除stash内容 git stash drop 删除stash内容 git stash pop 恢复工作现场,并删除stash内容

Feature分支

多人协作

git remote -v 查看远程库详细信息 git push origin 分支名 将分支推送至远程库origin

若推送失败:

  1. git pull 抓取远程的最新提交
  2. 合并,解决冲突后提交,再push

在本地创建和远程分支对应的分支,git checkout -b branch-name origin/branch-name;
建立本地分支和远程分支的关联,git branch –set-upstream branch-name origin/branch-name;

标签管理

Git标签实际上是指向某个commit的指针。

  1. 切换到要打标签的分支
  2. git tag 标签名 ,默认为最新提交的commit打标签,可添加commit id指定标签添加对象
    创建带说明的标签: git tag -a 标签名 -m “说明文字” commit id
    用私钥签名标签:  git tag -s 标签名 -m “说明文字” commit id
git tag -d 标签名 删除标签 git push origin 标签名 推送标签至远程 git push origin -tags 推送所有未推送标签至远程 (1) git tag -d 标签名(2) git push origin :refs/tags/标签名 删除远程标签(两步)

Git服务器搭建

ubuntu下

  1. 安装Git :sudo apt-get install git
  2. 创建Git账户 :sudo adduser git
  3. 创建证书登陆:将登陆用户公钥导入到/home/git/.ssh/authorized_keys中
  4. 初始化Git库: sudo git -bare Git库名
  5. 禁用Shell登陆:编辑/etc/paddwd,
    找到:
    git:x:1001:1001:,,,:/home/git:/bin/bash
    改为:
    git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
  6. 克隆远程仓库
0 0