git

171 阅读3分钟

分布式版本控制

为什么要版本控制

保留之前所有的版本,以便回滚和修改

简单使用

1、进入项目文件
2、初始化 git init
3、git status 查看文件状态
4、git add . 提交到暂存区
————————
    第一次使用,需要配置信息
    git config global user.email "邮箱"
    git config global user.name "名字"
————————
5、git commit -m "v1.0" 提交到版本库
6、git log 查看提交记录

三大区域

工作区-》暂存区-》版本库
工作区包括 已控制文件(绿色)和新文件或者有修改的文件(红色)组成
git checkout -- 文件名      红色-》绿色  回到改动之前
git reset HEAD 文件名 暂存区-》工作区

回滚

git reset --hard 版本号         //版本号,可通过git log 查看
git reset --soft 版本号  保留更改到
git push origin 分支名 --force



git reflog 可查看回滚前的提交记录

分支

git branch                  查看所处分支和所有分支
git branch 分支名           创建指定分支
git checkout 分支名         在现所在分支创建或切换到指定分支
git merge 分支名            合并指定分支到现在所处分支
git merge --abort          add之前 取消合并
                           add之后 git reflog 再git reset--hard commit id
git branch -d 分支名        删除指定分支

推送和拉取

git remote add origin 远程地址      设置远程仓库
git push -u origin 分支名           推送到远端的指定分支(-u 设置默认的分支)

git clone 远程仓库地址                  克隆远程代码到本地


git pull origin 分支名称                更新代码到本地
相当于两句命令
git fetch origin 分支名称           远程仓库-》版本库
git merge origin/分支名称           版本库-》工作区

仓库

查看远程仓库 git remote -v
修改远程仓库地址 

变基rebase 使git记录简洁

  • 应用场景一:整合当前分支的记录

    git rebase -i 版本号 合并指定版本到当前版本的记录

    git rebase -i HEAD~3 合并到当前版本的最近的3条记录

    • 把第一行下边的pick -> s 表示当前版本合并到上一个版本
    • 再写一个信息
  • 应用场景二:整合不同分支的记录

    git log --graph --pretty-format:"%h %s" 显示图形记录

    git rebase master 把当前分支记录合并到master分支记录

  • 应用场景三:代替pull,整合代码合并使产生的分叉

    • git fetch origin 分支名称
    • git rebase origin/分支名称
  • 注:若产生冲突

    • 先解决冲突
    • 再 git rebase --continue

快速解决冲突 软件 beyond compare

  • 配置

    git config --local merge.tool bc3

    git config --local mergetool.path '/usr/local/bin/bcomp'

    git config --local mergetool.keepBackup false

  • 应用

    git mergetool

多人开发

  • 1、创建初始项目和版本
    • 创建组织,再创建项目
    • 版本标记
      • git tag -a v1 -m "第一版"
      • git push origin --tags
  • 2、邀请成员
    • 在github 操作 invite someone 邀请进入组织
    • 再在项目里 邀请成员进入项目
  • 3、review
    • settings branches 设置分支rule 添加review
    • 成员pull request
    • 组长 add your review

开源项目贡献代码

- Fork 代码
- 正常开发
- 提交

免密登录

  • URL实现

  • ssh实现(企业常用)

    • 公钥和私钥(默认存在 ~/.ssh目录下 id_rsa.pub公钥、id_rsa私钥)

      ssh-keygen -r rsa

    • 拷贝公钥内容 cat ~/.ssh/id_rsa.pub,设置到github中

    • 在个人settings的SSH中添加

    • 在git本地配置ssh地址

      git remote add origin ssh地址

  • git自动管理凭证

    • 存在了电脑里,钥匙串

git忽略文件

.gitignore

任务管理

- issues 文档及任务管理
- wiki 项目文档