草庐IT

Git速成教学,从0到1看这篇就足够了

微凉秋意 2023-06-02 原文

🔥前言

前一阵子做的好多项目存到电脑里头都大了,虽然短时间没有用,但是删了实在可惜,于是我熬夜加班学习了Git的基本使用并快速入门,把项目存放到了远程仓库。随后写下了这篇博客,保证非常之新鲜热乎啊,快来跟我快速入门Git!

文章目录

✨Git的快速入门

  • Git——分布式版本控制

优势:和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都要干瞪眼了。

Git安装与常用命令

1.1Git环境配置

1.1.1 下载与安装

在官网下载Git即可,下载地址放在这儿,需要自取👉git-scm.com或者gitforwindows.org,​我的Git版本是Git-2.35.1.2-64-bit点击.exe文件下载(一直点next即可)

1.1.2基本配置

1、打开Git Bsah(电脑壁纸界面右键寻找)

  • 右键能找到 Git Bash说明Git安装成功

2、设置用户信息

用户名:git congfig --global user.name "自己的id"
邮箱:git congfig --global user.email "随便写"

  • 查看配置信息

用户名:git congfig --global user.name
邮箱:git congfig --global user.email

1.1.3为常用指令配置别名

有些常用的指令参数非常多,为了减少代码量,我们可以使用别名

  • 打开用户目录,创建.bashrc文件

    部分windows系统不允许用户创建点号开头的文件,可以打开gitBash输入touch ~/.bashrc

  • 在上方文件中输入以下内容

用于输出git提交日志:
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
用于输出当前目录所在的文件及基本信息:
alias ll='ls -al'

  • 打开gitBash,输入 source ~/.bashrc

1.2 获取本地仓库

要使用Git对我们的代码进行版本控制,首先要获得本地仓库

  • 在电脑任意位置创建一个新目录,例如:D盘myGit下新创建ylqb_test1文件夹

  • 进入这个目录中,右键进入Git Bash 窗口

  • 执行命令 git init

  • 创建成功后可以看到该目录下生成了一个.git隐藏目录

    找不到的话在“查看“中打开隐藏的项目

*1.3基础操作指令

Git 工作目录下对于文件的修改(增加、删除、更新)存在着几种状态,我们可以通过git的命令来更改这些状态

三种状态:

  • 工作区(workplace)

    这里存放着新建的文件(untracked)以及修改的文件(unstaged)

  • 暂存区(index)

    这里存放着已经暂存(staged)的文件,等待提交给仓库

  • 仓库(repository)

    存放暂存区提交的文件,以及提交的日志等信息

*1.3.1重要指令

  • 查看修改的状态 git status

  • 将工作区添加到暂存区

    • 添加单个文件语法:git add 文件名|通配符

      添加多个文件:git add .

  • 提交到仓库 git commit -m"注释内容"

1.3.2 查看日志(log)

普通版:git log --子命令

建议直接使用上面1.1.3所配置的别名 git-log即可,这样看到的是优化版的日志提示

1.3.3版本回退

  • 作用:版本切换
  • 命令形式:git reset commitID --hard (–hard也可以写在commitID之后,commitID是提交记录号)
    • commitID 可以用 git log或者 git-log命令找到
  • 如何查看删除的文件
    • git reflog
    • 这个可以查看已经删除的提交记录从而获得版本号

1.3.4添加文件至忽略列表

如果我们有些文件不想纳入Git管理,也不希望他们总出现在未跟踪的文件列表里,通常都是一些日志文件或者编译过程产生的文件,在这种情况下我们可以建立一个 名为.gitignore的固定文件,在文件里列出要忽略文件的后缀名即可。

1.4 分支

几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着你可以把你的工作人员从开发主线分离进行重大bug的修改,开发新功能,以免影响开发主线

1.4.1查看本地分支

  • git branch

1.4.2创建本地分支

  • git branch 分支名

*1.4.3切换分支

  • git checkout 分支名
  • 创建并切换分支:git checkout -b 分支名

1.4.4合并分支

  • 一个分支上的提交可以合并到另一个分支

  • git merge 分支名称

1.4.5删除分支

  • git branch -d 分支名 这个方法需要检查分支的关系,有可能删除失败
  • git branch -D 分支名 不做检查,强制删除分支

注意:不能删除当前分支,应切换到其他分支再删除要删除的分支

1.4.8 解决冲突

当两个分支以上对文件的修改可能会存在冲突,比如两个分支同时修改了同一个文件的同一行代码,这就需要手动解决Git无法判断提交哪个分支修改的问题.

  • 处理文件中冲突的地方
  • 将解决好冲突的文件加入暂存区(git add)
  • 提交到仓库(git commit)

2、Git远程仓库

2.1常用的托管服务(远程仓库)

  • gitHub 外国网站,网速慢
  • gitee(码云)国内网站,使用码云操作

2.2注册码云(略)

注册地址:https://gitee.com/signup

2.3新建远程仓库


  • 按照图示操作,下面的不要勾选!

2.4配置SSH公钥

通过SSH公钥来绑定个人仓库和远程仓库

  • 生成SSH公钥
    • ssh-keygen -t rsa
    • 不断回车(公钥存在会自动覆盖)
  • Gitee设置账号公钥
    • 获取公钥
      • cat ~/.ssh/id_rsa.pub
      • 注意复制的时候选中即可,不能ctrl+c
    • 检验是否配置成功
      • ssh -T git@gitee.com(出现下面的情况就是配置成功)


2.5操作远程仓库

2.5.1绑定远程仓库地址

  • git remote add <远端名称><仓库路径> (仓库路径按下图所示复制即可)
    • 远端名称,默认是origin,取决于远端服务器
    • 仓库路径,从远端服务器获取此URL

2.5.2查看远程仓库

  • git remote

2.5.3推送到远程仓库

  • 命令:git push [-f][--set-upstream][远端名称[本地分支名][远端分支名]]
    • -f 表示强制覆盖
    • 如果远程分支名和本地分支名相同,则可以只写本地分支
      • 例如git push origin master
    • --set-upstream推送到远端的同时并建立起和远端分支的关联关系
      • git push --set-upstream origin master
    • 如果当前分支已和远端分支关联,则可以省略分支名和远端名
      • git push 将master分支推送到已关联的远端分支

效果如下:

2.5.4查看本地分支与远程分支的关联关系

  • git branch -vv
    • 更加详细的查看分支

2.5.5从远程从库克隆

如果以及有一个远端仓库,我们可以直接 clone到本地

  • git clone <仓库路径>[本地目录] (可以在桌面打开GitBash进行克隆,桌面就会多出一个仓库)
    • 本地目录不加的话会自动生成一个目录

2.5.6从远程仓库抓取拉取

远程分支和本地分支一样,我们可以进行merge操作,只是需要先把远端仓库里的更新都下载到本地,在进行操作。

  • 抓取命令:git fetch[remote name][branch name]
    • 抓取指令就是将仓库的更新都抓取到本地,不会进行合并
    • 如果不指定远端名称和分支名,则抓取所有分支
    • 抓取更新的提交之后,再进行merge,这样clone的仓库也就完成了更新

  • 拉取命令:git pull[remote name][branch name]
    • 拉取命令就是将远端仓库的修改拉到本地并自动进行合并,等同于 fetch+merge
    • 如果不知道远端名称和分支名,则抓取所有并更新当前分支

2.5.7解决合并冲突

当两个以上的人同时修改同一个分支的同一行代码时,再将修改后的提交推到远程仓库的时候会出现冲突,解决办法和本地仓库解决冲突方法一致,不做演示。

📃 结语

总结了一天的Git笔记,最后也成功的将我的一些项目推送到了远程仓库,收获满满啊!另外如果文章看不太懂的朋友可以拿着我的笔记去B站找找Git入门的资源进行学习,一定是事半功倍的!超级实用的Git,快拿去学习吧,冲冲冲!!!

有关Git速成教学,从0到1看这篇就足够了的更多相关文章

  1. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  2. git使用常见问题(提交代码,合并冲突) - 2

    文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g

  3. ruby - Dropbox 类似 git 的服务——没有 rsync 和 inotify - 2

    关于如何使用git设置类似Dropbox的服务,您有什么建议吗?您认为git是解决此问题的合适工具吗?我在考虑使用git+rush解决方案,你觉得怎么样? 最佳答案 检查这个开源项目:https://github.com/hbons/SparkleShare来自项目的自述文件:Howdoesitwork?SparkleSharecreatesaspecialfolderonyourcomputer.Youcanaddremotelyhostedfolders(or"projects")tothisfolder.Theseprojec

  4. ruby - 混帐 & ruby : How can I unset the GIT_DIR variable from inside a ruby script? - 2

    我编写了一个非常简单的“部署”脚本,作为我的裸git存储库中的post-updateHook运行。变量如下livedomain=~/mydomain.comstagingdomain=~/stage.mydomain.comgitrepolocation=~/git.mydomain.com/thisrepo.git(bare)core=~/git.mydomain.com/thisrepo.gitcore==addedremoteintoeachlive&stagegitslive和stage都初始化了gitrepos(非裸),我已经将我的裸仓库作为远程添加到它们中的每一个(名为co

  5. ruby - 让 bundler 使用 http : instead of git:? - 2

    我正在安装gitlabhq,并且在Gemfile中有对某些资源的“git://...”的引用。但是,我在公司防火墙后面,所以我必须使用http://。我可以手动编辑Gemfile,但我想知道是否有另一种方法告诉bundler使用http://作为git存储库? 最佳答案 您可以通过运行gitconfig--globalurl."https://".insteadOfgit://或通过将以下内容添加到~/.gitconfig:[url"https://"]insteadOf=git://

  6. ruby-on-rails - 安装 active admin 时 activeadmin.git (at master) is not yet checked out 错误 - 2

    Activeadmingem已添加到我的rails项目中,但每次我尝试安装railsgactive_admin:install时,我都会收到类似的错误git://github.com/activeadmin/activeadmin.git(atmaster)isnotyetcheckedout.Runbundleinstallfirst.我肯定在运行“railsgactive_admin:install”之前运行了bundle。运行“bundleshow”后,我看到我已将“*activeadmin(1.0.0.pre3f916d6)”添加到我的项目中,但不断收到此错误消息。我的gem文

  7. ruby - git:从 bitbucket 导出并导入 github(带提交) - 2

    我在bitbucket上创建了一个私有(private)git存储库并提交了代码。现在我想导出所有(提交、代码、历史记录)并将其导入github上的gitrepo。有没有办法做到这一点?谢谢 最佳答案 在本地检查所有内容到您的计算机和gitpull。创建一个github存储库将此存储库添加为您的第二个远程(“使用gitremote添加githubURL”)推送到第二个Remote 关于ruby-git:从bitbucket导出并导入github(带提交),我们在StackOverflow

  8. Unity 报错No ‘git‘ executable was found. Please install Git on your system then restart - 2

    亲测可用。Anerroroccurredwhileresolvingpackages:Projecthasinvaliddependencies: com.unity.xxx:No'git'executablewasfound.PleaseinstallGitonyour  systemthenrestartUnityandUnityHub在我们使用PackageManager时,Unity允许我们使用Git上的package(点击加号,选择addpackagefromgitURL,或者是直接在Asset/Packages/manifest.json中添加包名)。但是这种操作需要我们事先装好g

  9. ruby - RSpec Git Bash Windows——缺少颜色? - 2

    我在Windows上使用GitBash来完成我的大部分Rails工作,每次我运行bundleexecrspecspec它都会提醒我“你必须geminstallwin32console才能使用Windows上的颜色”,然后以纯黑色和白色运行RSpec。但是我确实安装了win32console,当我在列表中运行gemlist时,它有win32console(1.3.0x86-mingw32)。RSpec工作正常,但我希望它有一些颜色。我用谷歌搜索了这个并找到了多种解决方案,但似乎没有一个适合我。有人可以写出在GitBashforWindows上使用RSpec获取颜色的“循序渐进”方法吗?

  10. ruby - git 最好的 ruby​​ api 是什么? - 2

    我想实现一个Rake任务,自动执行一些我必须完成的任务,以便将我的更改从开发转移到生产(是的,我知道有像Capistrano这样的东西,它对我来说太多了).中间是gitadd-i等一些交互命令,以及一系列commit和push。在生产方面,将有pull和Assets任务要做。一直输入相同的命令很乏味,所以我想完全自动化。我还没有找到Git的RubyAPI。它应该在Windows7下工作,并且至少允许以下命令:gitadd、gitstatus、gitcommit、gitpush,gitpull. 最佳答案 我知道,坏习惯,但我想记录一

随机推荐