Git小白入门|青训营笔记

155 阅读5分钟

Git小白入门|青训营笔记

这是我参与[第四届青训营]笔记创作活动的第1天

前言

最近在团队合作过程中使用Git遇到了许多问题,借此机会打算恶补一下Git的基础知识📖

对于Git的常用操作,下面这张图非常到位👍

img

基本概念

基于上图,我们先来一个个解释一下它们的基本概念⬇️

  • workspace(工作区) :项目所存放文件夹的位置,也是经常改动的地方
  • Staging area/Index(暂存区) :暂时存放项目文件的区域,在使用git init文件时就会在这个文件内生成一个.git文件(版本库),在.git中包含两部分,其中一个就是暂存区,我们通常使用git add将工作区文件添加到暂存区中;
  • local repository(本地仓库) :存放项目文件的git本地仓库文件夹,位于自己的电脑上,通过git commit命令将暂存区的文件存放到本地仓库;
  • remote repository(远程仓库) :用来托管项目文件的服务器(Github,Gitee...),可以被分布在多个地点的协同工作者修改。通过git push将本地仓库中的修改代码同步到远程仓库

配置操作

首先,在正式使用Git之前,我们必须先配置好Git的全局设置

 #设置全局配置信息
 git config --global user.name "你的名字"
 git config --global user.email "你的电子邮箱"
 #设置本地仓库的配置信息
 git config --local user.name "你的名字"
 git config --local user.email "你的电子邮箱"
 #查看全局、本地、系统配置信息
 git config --global --list
 git config --local --list
 git config --system --list
 #删除全局、本地配置信息
 git config --unset --global 配置项
 git config --unset --local 配置项

配置好了这些信息后,我们就可以正是进入git的核心操作部分

分支管理

简单的向大家介绍一下常用分支操作

 
 #创建分支
 git branch 'branch_name'
 #从当前分支切换到其他分支
 git checkout 'branch_name'
 #删除分支
 git branch -d 'branch_name'
 #合并指定分支
 git merge 'branch_name'
 #查看分支合并与未合并情况
 git branch --merged 或者 --no-merged
 #查看所有分支
 git branch

远端交互

在团队合作开发的过程中,我们常常会将项目文件托管到第三方平台,方便大家协同开发,提高效率,因此熟练掌握git 的远端交互命令就颇为重要。

 
 #查看所有远端仓库
 git remote -v
 #添加远端仓库
 git remote add URL
 #删除远端仓库
 git remote remove 'remote_name'
 #重命名远端仓库
 git remote rename 'old_name' 'new_name'
 #将远端分支的变更同步到本地,且merge到本地分支
 git pull origin 'branch_name'
 #将本地分支 push 到远端
 git push origin 'local branch_name'
 #删除远端分支
 git push remote --delete 'remote_branch_name'

标签

在合作开发过程中,常常会存在多个提交,为了更好的方便开发者查阅这些提交信息,为此git提供了一个标签功能,将提交的记录打上一个标签来表示不同时期提交记录。

git支持两种标签:轻量标签(lightweight)和附注标签(annotated)

  • 轻量标签(lightweight)是指向提交对象的引用
 #创建附注标签
 git tag -a 'tag_name' -m '备注信息'
  • 附注标签(annotated)是仓库内的一个独立对象,拥有标签者的信息
 #创建轻量标签
 git tag 'tag_name'-lw

更多标签操作

 
 #给指定的commit打标签
 git tag 'tag_name' commitid
 #向远端推送本地标签
 git push origin 'tag_name' 
 #向远端同步标签
 git push origin --tags 
 #删除本地标签
 git tag -d 'tag_name'
 #删除远端标签
 git push origin :refs/tags/'tag_name' 

日志管理

协同开发人员需要经常提交一些代码去修复bug或者实现新的功能,而项目中的文件和实现什么功能、解决什么问题都会渐渐淡忘,最后需要浪费时间去阅读代码。但日志却能帮助我们节省大量的时间。掌握git 日志命令对开发拥有着巨大作用。

 
 #查看历史操作记录
 git reflog
 #查看所有的日志
 git log 
 git log --oneline
 #用图显示所有分支的历史
 git log --oneline --graph --all
 #查看指定文件的所有commit
 git log '文件'
 #查看文件各行最后修改的commit以及作者
 git blame '文件'

fetch指令与pull指令

fetch指令是将远程仓库的最新内容拉到本地仓库,在用户对其检查后再决定是否合并到工作区中;

pull指令将远程仓库的最新内容拉下来后直接合并,可能会导致产生合并冲突,需要自手动解决;

clone指令适用于本地没有代码,你要下载。你连不连接远程仓库。有无仓库权限皆可。

 
 #将远程仓库的更新全部取回本地
 git fetch <远程主机名> 
 #从远程仓库取回特定分支的更新
 git fetch <远程主机名> <分支名>
 #将远程仓库的某个分支的更新取回,并与本地指定的分支合并
 git pull origin <远程分支名>:<本地分支名>
 #本地没有代码,从其他远程仓库拉取代码
 git clone URL

基本操作

有了上面的git基础知识,接下来我们就来实操一下吧

  • 创建本地仓库并初始化
 git init
  • 链接本地仓库与远程仓库
 git remote add origin url
  • 配置相关信息并检查
 git config --global user.name "yourname"
 git config --global user.email "your_email"
 git config --list
  • 查看远端仓库信息
 git remote -v
  • 提交暂存区,再提交到本地仓库
 git add . / git add '指定文件'
 git commit -m '修改信息'
  • 最后提交远程仓库
 git push origin 'remote_branch_name':'local_branch_name'

注意

第一次使用git的用户并托管代码时,需要两大步骤(可参考这篇超详细的文章)

  1. 生成密钥对
  2. 设置远程仓库上的公钥

写在最后

这是本人第一次用掘金写的一篇博客笔记,希望各位大佬多多指教,写的不对就请大家指出,有疑问的同学也可以在评论区提出,大家一起进步💪💪

参考及Git学习资源

「备忘录」60+Git常用命令行 - 掘金 (juejin.cn)

git基本操作,一篇文章就够了! - 掘金 (juejin.cn)

git fetch & pull详解 - 掘金 (juejin.cn)

🛠Git 常用操作总结 - 掘金 (juejin.cn)