自我总结的git的使用

git是什么

git是一个分布式版本控制工具,github是代码托管平台。

git有什么用

  • 保存文件的所有修改记录

  • 使用版本号进行区分

  • 随时可浏览历史版本记录

  • 可还原到历史指定版本

  • 对比不同版本的文件差异

为什么要用git?

  • 多人协作开发一个大型项目

  • 每个人都在代码库下载代码,然后进行修改,把大家不同版本的代码合并上传到平台

  • 公司都会有自己的代码托管平台,github是开源的,免费学习,参与知名项目

  • 为协作开发而生的,公司都在使用,不得不学

要学什么?怎么用

基本概念

仓库

仓库分为远端仓库和本地仓库

远端仓库

  • git init --bare

本地仓库

  • git clone ...

协议

  • http

  • ssh

使用ssh公钥登录GIT服务器

生成公钥和私钥(ssh-keygen -t rsa)

安装openssh server(可省略)

复制公钥内容到远端服务器 .ssh/authorize_keys

git clone

  • git

设置用户名和密码

局部

使用git config user.name mark设置用户名

设置邮箱使用 git config user.email [email protected]

git config --local -l

全局

使用 git config --global user.name mark设置用户名

使用git config --global user.email [email protected]设置邮箱

git config -l

本地工作区

就是我们使用git init或 git clone 所在的路径

暂存区

使用 git add <源码文件>添加到暂存区

本地仓库

使用git commit . 添加到本地仓库

远程仓库

使用git push orgin master推送到远端服务器

版本号

通过 git log查看我们的提交记录·里面有我们的版本号

当前检出记录的符号引用

基本操作

  • 暂存(git add)

  • 提交(git commit)

  • 推送(git push)

  • 拉取(git fetch)

  • 拉取合并(git pull)

git fetch

git merge

  • 查看状态(git status)

  • 查看历史(git log)

git reflog

逆向操作

  • index -> workspace git (git restore -S 源码文件)

  • 本地仓库 -> index (git reset --soft)

  • 本地仓库 -> workspace(git reset --mixed)

  • 本地仓库 ->null(git reset --hard)

  • workspace ->null(git checout、git checkout --file、git checkout -f)

本地仓库整理操作

  • 整理上一次提交(git commit --amend)

  • 整理多次提交(git rebase -i h1 h2、左开右闭)

  • 没有人基于你的分支开发(从变基那个节点开始往后的所有节点的commit id都会变化、会引起其他人冲突)

分支操作

  • 查看分支(git branch)
  • 创建分支(git branch develop 创建、git chect out -b develop 创建并切换)
  • 合并分支(git rebase(不建议使用))
    • 从两个分支的共同祖先开始提取当前分支上的修改
    • 提取的提交应用到目标分支的最新提交的后面
    • 将当前分支只想目标分支的最新提交
    • 可能引发其他人基底发生改变
  • 删除分支
    • git branch -d develop
    • 删除远端 git push origin -d develop

*分支作用:独立变化互不依赖

解决冲突

  • 冲突产生原因 不同分支修改了同一文件
  • 解决原则
    • 不要影响其他人提交的功能
    • 协商解决
  • 解决
    • git merge
      • git add .
      • git commit . -i -m ".."
    • git rebase
      • git add . 标记解决
      • git rebase --continue
  • 建议
    提交前先pull代码

推荐一个零声学院免费教程,个人觉得老师讲得不错,
分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容,点击立即学习:
服务器
音视频
dpdk
Linux内核

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章