美文网首页
Git学习笔记

Git学习笔记

作者: icfg66 | 来源:发表于2020-04-23 11:00 被阅读0次

为什么要用Git?

你是否有这样的精力,写毕业论文时,总要复制之前的版本,然后继续编辑,一个毕业论文的文件夹充满了毕业论文1、毕业论文2···毕业论文5,毕业论文最后版,毕业论文究极版,毕业论文不改版····Git可以很好地帮你管理这方面的版本,它会记录每个版本修改的东西,但不需要每次都复制,非常方便管理。

另一方面,如果多个人一起完成一个项目,那么更加需要版本管理,特别是在大型软件编写的过程中,Git的优势更加明显。最爽的是,Github是丰富的资源库,你可以从别人的Git库中“克隆”学习代码,还可以很容易分享自己的代码。

不过Git的更适合管理纯文本文件,比如.txt、.c、.py等代码,Office文档如word、excel、ppt等适合用svn。

一下代码均上来自廖雪峰Git教程

基本操作

window的Git软件,开始菜单找到“Git”->“Git Bash”,每个机器需要自报家门:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

在Git Bash里面可以用linux的基本操作命令。建立新仓库:

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

$ git --help #非常有用的帮助文档

添加文件到仓库,并提交文件到仓库:

#工作区>>>>暂存区>>>>版本库
$ git add readme.txt # 加入“暂存区”
$ git commit -m "wrote a readme file"#”加入版本库“

查看当前仓库状态:

$ git status #会显示下一步操作参考指令,很有用
$ git diff # 比较“工作区”与“暂存区”的区别
$ git diff --cached # 比较“暂存区”与“版本库”的区别
$ git diff HEAD --readme.txt #比较“工作区”与“版本库”的区别
$ git log #查看提交历史日志,以便退回
$ git reflog #查看命令历史,以便回到未来版本
$ git log --pretty=oneline #单行显示日志
$ git reset --hard HEAD^ #退回上一版本
$ git reset --hard 1094a #回到某一版本

撤销和退回

$ git restore readme.txt #撤销工作区的修改
$ git restore --staged readme.txt #撤销添加暂存区
$ git reset HEAD~1 readme.txt #退回上一版本

$ rm test.txt # 工作区中删除文件
$ git rm test.txt # 从版本库删除
$ git commit -m "text.txt"

Github远程仓库

如何将本地的文件传到Github,又如何从别人的Github上下载代码呢?

下载代码

$ git clone git@github.com: michaelliao/gitskills.git 
#冒号后面是分享代码的账户名和其仓库名

上传Github,首先需要注册一个Github账号,建立一个自己的仓库,添加本地生成的公钥,目的是让远程仓库授权你的本地仓库才可以提交代码。

#将本地的仓库关联到Github上michaelliao/learngit.git仓库命名为origin
$ git remote add origin git@github.com: michaelliao/learngit.git
$ git push -u origin master #本地所有内容推送到远程库上
$ git push origin master #之后更新不用加-u

$ git remote #查看远程库
$ git remote -v # 远程库详细信息
$ git push origin dev #推送其他分支

$ git pull #抓取远程别人的新提交
# 设置本地分支与远程分支一致
$ git branch --set-upstream-to=origin/dev dev

分支管理

$ git branch #查看分支
$ git checkout -b dev #切换到dev分支
#等价于
$ git branch dev #生成新分支
$ git checkout dev #切换新分支
$ git merge dev #合并分支,一般不用这个
# 禁用fast forward 协同开发时更常用
$ git merge --no-ff -m "merge with no-ff" dev
$ git branch -d dev # 删除分支
$ git branch -D dev #强行删除分支

# 也可以用switch切换,更常用
$ git switch -c dev #切换到dev分支
#等价于
$ git branch dev #生成新分支
$ git switch dev #切换新分支

#查看分支合并图
$ git log --graph --pretty=oneline --abbrev-commit
$ git log --graph 
$ git rebase # 变基操作,将提交分叉整理为直线

#打标签
$ git tag #查看所有标签
$ git tag v1.0 #当前版本打标签
$ git tag v0.9 f52c633 #之前某版本打标签
#打标签并添加说明
$ git tag -a v0.1 -m "version 0.1 released" 1094adb 
$ git show v0.1 #查看标签说明

$ git tag -d v0.1 #删除标签
$ git push origin v1.0 #推送某标签
$ git push origin --tags #推送全部尚未推送的本地标签
$ git push origin :refs/tags/v0.9 # 删除远程标签

现场保护

$ git stash #把当前的工作现场”储藏“起来,现在可以做其他紧急的事
$ git stash list #查看保存的现场
$ git stash pop #恢复现场,现在可以继续之前的工作
$ git cherry-pick 4c805e2 #添加修复bug时的内容,避免重复劳动

相关文章

  • 学习笔记| git深入浅出 Part1_快速操作指南

    Git专题 学习笔记| git深入浅出 Part1_快速操作指南 学习笔记| git深入浅出 Part2_Git...

  • git 入门

    git 入门学习笔记----3个入门命令:git init、git add、git commit -v 学习场景(...

  • git记录

    Git Magic图解gitgit 学习笔记git游戏(学习)1、消除文档路径中文乱码git config --g...

  • Git学习笔记--常用命令整理

    超实用Git学习笔记 Git全局配置git config --global user.name "用户名"git ...

  • Git常用命令与学习总结

    安装Git Git的下载地址:Git官网下载地址 学习网址 git 学习笔记- Book 在线练习地址 基础常用指...

  • git学习笔记(二)—— git的简单操作

    这是本系列学习笔记的第二篇git 学习笔记(一)—— 初识 git 前言 本篇文章将简要的介绍 Git 的一般操作...

  • 关于crlf

    Git学习笔记:Git设置CRLF(行尾换行符) git config --global core.autocrl...

  • GIT

    Git学习笔记 Git 与 Github对接: cd到当前文档 git init初始化git git add -A...

  • Git学习笔记

    git学习笔记 声明 本文是本人学习Git过程中所做的笔记,以便日后查阅,文中多有错漏之处,不建议用作学习材料,文...

  • Git学习笔记

    git 学习笔记 注册个人信息 git config --global user.name(你的用户名) git ...

网友评论

      本文标题:Git学习笔记

      本文链接:https://www.haomeiwen.com/subject/yoonihtx.html