首页 > 其他分享 >Git实战指南:从入门到实战手把手教你玩转Git

Git实战指南:从入门到实战手把手教你玩转Git

时间:2023-08-06 11:02:04浏览次数:43  
标签:实战 文件 Git 手把手 stash add git 文件夹 分支

一、基本操作

Git实战指南:从入门到实战手把手教你玩转Git_工作区

Git实战指南:从入门到实战手把手教你玩转Git_版本控制_02

1.使用命令设置用户名:

git config --global user.name "你的用户名"

Git实战指南:从入门到实战手把手教你玩转Git_版本控制_03

2.使用命令设置邮箱:

git config --global user.email "你的邮箱"

Git实战指南:从入门到实战手把手教你玩转Git_暂存区_04

2-1.查看一下配置的【用户名】和【邮箱】,以防配置错误:

Git实战指南:从入门到实战手把手教你玩转Git_版本控制_05

3.使用命令生成SSH Key:

ssh-keygen -t rsa -C '你的邮箱'

Git实战指南:从入门到实战手把手教你玩转Git_git_06

(这样代表以及生成成功了)

4.创建完成后,在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

Git实战指南:从入门到实战手把手教你玩转Git_暂存区_07

5.打开【id_rsa.pub】文件(用记事本打开)。复制里面的Key。

Git实战指南:从入门到实战手把手教你玩转Git_暂存区_08

6.然后登陆GitHub,没有账号的先注册账号。

网址:GitHub: Let’s build from here · GitHub

Git实战指南:从入门到实战手把手教你玩转Git_暂存区_09

7.在网址的右上角,点开头像。打开【Settings】。

Git实战指南:从入门到实战手把手教你玩转Git_工作区_10

8.找到【SSH and GPG keys】,点击【New SSH key】

Git实战指南:从入门到实战手把手教你玩转Git_版本控制_11

9.【title】自己取名,【key】就是在之前步骤生成的Key,去复制下来。然后点击【Add SSH key】创建即可。创建成功系统会发一封邮件给你。

Git实战指南:从入门到实战手把手教你玩转Git_工作区_12


二、克隆项目

1.首先新建一个文件夹,这个文件夹用来存储你的远程项目的。

Git实战指南:从入门到实战手把手教你玩转Git_工作区_13

2.在这个文件夹中。右击鼠标,打开【Git Bash Here】

Git实战指南:从入门到实战手把手教你玩转Git_版本控制_14

3.使用命令初始化项目:

git init

Git实战指南:从入门到实战手把手教你玩转Git_版本控制_15

Git实战指南:从入门到实战手把手教你玩转Git_版本控制_16

(可以看到文件夹中多了一个文件:【.git】,这个是隐藏文件,如果需要查看:)

Git实战指南:从入门到实战手把手教你玩转Git_版本控制_17

4.使用命令克隆项目:

git clone '你的项目地址'

Git实战指南:从入门到实战手把手教你玩转Git_版本控制_18

Git实战指南:从入门到实战手把手教你玩转Git_版本控制_19

(项目地址从这里复制,粘贴的时候不能使用快捷键ctrl+v,必须使用鼠标右键,然后点击【paste】进行粘贴)

Git实战指南:从入门到实战手把手教你玩转Git_版本控制_20

(可以看到克隆100%,已经克隆完毕了,右边文件夹也多了项目文件,然后可以进行操作了)


三、操作项目并进行远程协同

1.在进行对项目的操作时,记得要在项目里面的【.git】当前文件夹中进行操作,而不是在之前init初始化项目的文件夹!!!博主做这个操作了弄错了好久~

Git实战指南:从入门到实战手把手教你玩转Git_暂存区_21

2.【添加】操作:

(1)添加单个文件:【git add "文件名"】

(2)添加所以文件:【git add -A】/ 【git add .】/【git add *】/【git add --all】

3.【删除】操作:

(1)删除单个文件:【git rm “文件名”】

(2)删除文件夹已经里面的文件:【git rm "文件夹名" -r -f】(注意:改文件夹可能会存在部分文件夹,删除即可)

4.将文件推送到本地版本库:【git commit -m "提交备注"】

5.执行远程推送:【git push】/【git push origin master】(这一步可能会让你输入邮箱和登录密码)

6.拉取:【git pull】


四、冲突解决

1.如果希望保存本地改动并拉下最新服务器代码,手动merge:

2.如果希望服务器上版本完全覆盖本地修改,使用如下命令回退并更新:

(1)【git reset --hard】

(2)【git pull】


五、常用命令

Git实战指南:从入门到实战手把手教你玩转Git_暂存区_22

Git实战指南:从入门到实战手把手教你玩转Git_git_23

5.1、常见命令

5.1.1-常用命令

  • git init : 初始化 git 仓库,即将一个文件夹初始化为一个 git 仓库。具体的操作是创建一个 .git 隐藏文件夹
  • git status : 查看仓库的状态
  • git add  : 将文件提交到暂存区
  • git commit -m <代码提交信息> : 将暂存区的文件提交到仓库中,并附带说明信息
  • git log : 查看所有产生的 commit 记录
  • git config -l : 查看自己的配置,默认配置都在.git/config 文件中


5.1.2-分支相关的命令

  • git branch <branch_name> : 如果不加上 <branch_name>,查看当前分支情况。如果加上,就是创建一个分支。
  • git checkout <branch_name> : 切换到<branch_name>的分支上
  • git checkout -b <branch_name> : 创建一个分支并切换到这个分支上,效果相当于合并上面 2 个命令。
  • git merge <branch_name> : 将 <branch_name> 分支合并到当前所在的分支上
  • git branch -d <branch_name> : 将 <branch_name> 分支删除
  • git branch -D <branch_name> : 将 <branch_name> 分支强制删除。如果 <branch_name> 分支存在未合并的代码时,那么用 -d 是删除不了。


5.1.3-标签相关的命令

  • git tag : 查看历史 tag 记录。
  • git tag <tag_name> <commit_id> : 在指定提交 id 上创建一个 tag。如果不写 <commit_id> ,那就在最新的 commit 上创建一个 tag。
  • git checkout <tag_name> : 切换到 <tag_name> 标签
  • git show <tag_name> : 查看标签信息
  • git tad -d <tag_name> : 删除标签
  • git push origin <tag_name> : 将某个标签推送到远程仓库
  • git push origin :refs/tags/<tag_name> : 可以删除一个远程标签。


5.1.4-SSH

  • 提前申明, windows 系统并不自带 SSH, 但是安装的 Git 中带有 SSH。所以以下命令请在 Git bash 下执行。
  • ssh-keygen -t rsa : 指定 rsa 算法生成密钥。
  • ssh -T [email protected] : 测试 ssh 是否成功添加到 github 中
  • 1.5 Github 操作
  • git clone ... : 将 github 项目复制到本地的当前目录
  • git push origin <本地分支>:<远程分支> : 把本地分支中本地代码同步到远程分支
  • git pull orgin <branch_name> : 把远程 <branch_name> 分支的最新的代码同步到本地当前分支中
  • get remote add origin [email protected]:xxx/xxxx.git : 将当前本地仓库与远程进行联接
  • git remote -v : 查看我们当前项目有哪些远程仓库


5.1.4-补充命令

  • alias 别名
  • git config --global alias.<别名> "<原命令>"。比如 git config --global alias.c "checkout",之后 git c == git checkout
  • diff
  • git diff : 比较工作区文件和暂存区文件差异。如果加上文件名,就仅比较这个文件在工作区与暂存区的区别
  • git diff <commit_id1> <commit_id2> : 比较两次提交之间的差异
  • checkout
  • 作用 1 :切换分支、标签以及 commit。本质是「用某个 HEAD 中的最新内容替换掉你的工作区中的文件」。切换时,暂存区的内容不受影响但相当于在切换前执行了 git stash
  • 作用 2 :撤销还没进入暂存区的修改的作用。举个例子,假设我们在一个分支开发一个小功能,刚写完一半,这时候需求变了,而且是大变化,之前写的代码完全用不了了,好在你刚写,甚至都没有 git add 进暂存区,这个时候很简单的一个操作就直接把原文件还原:git checkout a.md,本质上是将 HEAD 内容覆盖掉工作区的内容。注意,checkout 命令只能撤销还没有 add 进暂存区的文件。
  • stash
  • 作用:把当前分支中的工作区的所有修改先暂存到栈上。
  • 运用场景:假设我们正在一个新的分支做新的功能,这个时候突然有一个紧急的bug需要修复,而且修复完之后需要立即发布。当然你说我先把刚写的一点代码进行提交不就行了么?这样理论上当然是ok的,但是这会产品垃圾commit,原则上我们每次的commit都要有实际的意义,你的代码只是刚写了一半,还没有什么实际的意义是不建议就这样commit的,那么就用 git stash 保留。
  • git stash : 把当前分支所有没有 commit 的代码先暂存起来
  • git stash list : 查看所有 stash 记录
  • git stash apply : 将暂存的代码还原
  • git stash drop : 把最近一条 stash 记录删除。注意:每次还原代码后,最好删除这条 stash 记录
  • git stash pop == git stash apply + git stash drop
  • 注意:执行了 git add 的数据在切换分支时,会自动暂存一起。本质上是因为切换分支不影响暂存区的数据。但需要手动恢复。


六、防止采坑

1.不要将邮箱设置成私有的,请设置为公开的;

Git实战指南:从入门到实战手把手教你玩转Git_暂存区_24

解决:

Git实战指南:从入门到实战手把手教你玩转Git_工作区_25


原文链接:https://blog.51cto.com/kimiliucn/6982299


标签:实战,文件,Git,手把手,stash,add,git,文件夹,分支
From: https://blog.51cto.com/kimiliucn/6982299

相关文章

  • Caddy 入门实战(1)--简介及安装
    Caddy是一款基于Go语言编写的强大且可扩展的平台,可以给你的站点、服务和应用程序提供服务。本文主要内容为Caddy的简介及安装,文中所使用到的软件版本:Caddy2.6.4、CentOS 7.9.2009。1、简介大多数人将Caddy用作Web服务器或代理,但Caddy的本质是诸多服务器的服务器。......
  • Git实战指南:从入门到实战手把手教你玩转Git
    一、基本操作1.使用命令设置用户名:gitconfig--globaluser.name"你的用户名"2.使用命令设置邮箱:gitconfig--globaluser.email"你的邮箱"2-1.查看一下配置的【用户名】和【邮箱】,以防配置错误:3.使用命令生成SSHKey:ssh-keygen-trsa-C'你的邮箱'(这样代......
  • git常用命令
    工作区→暂存区→版本库设置用户名、邮箱gitconfig--globaluser.namexxx:设置全局用户名,信息记录在~/.gitconfig文件中[email protected]:设置全局邮箱地址,信息记录在~/.gitconfig文件中配置成git仓库gitinit:将当前目录配......
  • Linux上的gitlab日常操作
    (Linux上的gitlab日常操作)一、本地创建系统用户1.创建zhangsan用户[root@k8sgitlab]#useraddzhangsan[root@k8sgitlab]#passwdzhangsanChangingpasswordforuserzhangsan.Newpassword:BADPASSWORD:Thepasswordfailsthedictionarycheck-itistoosimp......
  • Spring Boot&Vue3前后端分离实战wiki知识库系统<十一>--文档管理功能开发三
    文档内容的显示:在上一次SpringBoot&Vue3前后端分离实战wiki知识库系统<十>--文档管理功能开发二文档管理模块还差文档的显示木有完成,所以接下来先将这块模块给收尾了。增加单独获取内容的接口:概述:在前端页面文档查询时,只查询了文档的基本信息,其中文档的富文本内容是木有带出来的:当......
  • Spring Boot + Vue3前后端分离实战wiki知识库系统<十一>--文档管理功能开发三
    文档内容的显示:在上一次https://www.cnblogs.com/webor2006/p/17510360.html文档管理模块还差文档的显示木有完成,所以接下来先将这块模块给收尾了。增加单独获取内容的接口:概述:在前端页面文档查询时,只查询了文档的基本信息,其中文档的富文本内容是木有带出来的:当然也不可能......
  • Git - git tag
    zzh@ZZHPC:/zdata/Github/zzhrepo1$gitadd-Azzh@ZZHPC:/zdata/Github/zzhrepo1$gitcommit-m"updatefunctionCubeVolume()"[main13f27a8]updatefunctionCubeVolume()1filechanged,9insertions(+),2deletions(-)zzh@ZZHPC:/zdata/Github/zzhr......
  • .git泄露利用脚本工具githack使用
    前言首先我们要明白git(一种分布式版本管理工具),它适用于我们多人协作开发,我们每个人对开发项目进行了修改git都会记录并产生快照也就是我们所谓的版本,我们可以很方便的查看甚至是回溯到我们之前的版本(也许我们在开发过程中会出现许多的不可控事故)但前提是我们不能删除.git文......
  • 简单的用Python获取一下视频弹幕,新手练手实战项目,非常简单!
    昨天看到个视频,弹幕挺有意思的,于是想着用Python给他全部扒下来。代码非常简单,接下来我们看看具体操作。需要准备这些软件Python3.8Pycharm模块使用importrequests数据请求importjieba分词importwordcloud词云importparsel数据解析importre......
  • 【腾讯云 Cloud Studio 实战训练营】一个多年云端开发体验者的实战使用
    背景近几年,越来越感觉软件的趋势逐渐从客户端越来越转向以web提供服务的云端,特别是互联网行业,典型的比如原型设计产品,从客户端软件Axure逐渐到墨刀在线原型设计的流行,UI设计行业photoshop&sketch转向蓝湖&MasterGo在线UI设计,web的力量前所未有的强大,可以说一个浏览器就能满足......