Git学习笔记--基础

因为之前没有怎么系统的学过git,唯一记得的就是当初写PA的时候用过git的分支功能和提交,也没学过其他的版本控制工具,所以先简单学一下基础的操作,如果想查看详细的教程,可以跳到文章结尾,点击我附上的链接查看


创建版本库

可以把版本库理解为仓库

  • 创建一个空目录

    
      $ mkdir learngit
    
      $ cd learngit
    
      $ pwd
    
      /Users/michael/learngit
    
  • 将空目录变成仓库

    
      git init
    
  • 把文件添加到版本库

    
      git add readme.txt
    
  • 提交到仓库

    
      git commit -m "wrote a readme file"
    

    -m后接的是本次提交说明

版本管理

  • 查看仓库状态

    
      git status
    
  • 查看文件区别

    
      git diff readme.txt 
    
  • 日志查看

    
      git log
    
  • 回退版本

    
      git reset --hard HEAD^
    

    HEAD是当前指向的指针,加一个^,表示回退一个提交,^^表示两个提交,以此类推,多个是~n

    回退版本了又后悔了怎么办,查看commit_id,然后修改HEAD指向

    查看历史commit_id:

    
      git reflog
    

    找到后修改HEAD指向:

    
      git reset --hard 1094axxxx(your_commit_id)
    
  • 工作区与缓存区

    没有add前,在工作区,add后进入缓存区,commit后提交修改

  • 删除文件

    当删除一个文件后,需要同步到版本库

    
      git status
    

    查看文件的区别(删了哪些文件)

    然后把版本库中的相应文件删掉

    
      git rm test.txt
    

    提交

    
      git commit -m "remove somefile"
    

    如果是不小心把工作区的文件删了,想从暂存区或者版本库同步

    
      git checkout -- test.txt
    

分支管理

  • 创建分支

    
      git branch dev(分支名)
    
  • 切换分支

    
      git switch master
    
  • 删除分支

    
      git branch -d dev
    
  • 分支合并

    不建议使用快速合并模式

    
      git merge --no-ff
    

标签管理

标签相当于一个指向提交的指针

commit_id太复杂了用标签来代替可以方便记忆

  • 打标签

    
      git tag v1.0
    
  • 查看标签

    
      git tag
    
  • 补标签

    
      git tag v0.9 f52c633(commit_id)
    
  • 删除标签

    
      git tag -d v0.9
    
  • 推送标签到远程

    
      git push origin v1.0
    
  • 删除远程的标签

    删除本地的标签后:

    
      git push origin :refs/tags/v0.9
    

远程仓库

  • 克隆

    
      git clone xxxx
    

    从指定分支克隆

    
      git clone -b <分支名> <仓库地址>
    
  • 上传

    将指定分支上传到指定分支:

    
      git push origin <本地指定分支>:<远程指定分支>
    
  • 删除

    删除远程分支:

    
      git push origin --del <远程分支名>
    
  • 更新

    从指定远程拉去更新:

    
      git pull origin <远程分支名>:<本地分支名>
    

参考:

Git教程- 廖雪峰的官方网站

git操作之pull拉取远程指定分支以及push推送到远程指定分支

Git官方手册

罗松超的博客园

IT云清

Last modification:August 23rd, 2021 at 01:59 am