git 使用

Git操作指南:配置与常用命令详解
本文详细介绍了Git的环境配置,包括配置用户名和邮箱。接着讲解了Git的工作流程,如初始化仓库、查看文件状态、管理提交历史。重点讨论了Git的各种命令,如`git add`、`git commit`、`git reset`、`git diff`、`git branch`、`git merge`、`git push`和`git pull`,并探讨了它们的区别和应用场景。此外,还提到了创建`.gitignore`文件、使用`ssh`配置与GitHub的连接,以及如何将新项目提交到GitHub。

Git环境配置

配置用户名
git config --global user.name 你的名字

配置邮箱
git config --global user.emial 你的邮箱

查看配置

 git config --list
 git config user.name
 git config user.email

手动配置
C:users/用户/.gitconfig

git 工作流程

在这里插入图片描述

初始化仓库

git init

初始化仓库并产生.git 文件夹

.git文件夹 非常重要,记录我们的变更内容(objects),分支(refs),日志(logs),脚本(hooks)
使用方法
使用当前目录作为Git仓库,我们只需使它初始化。

git init
该命令执行完后会在当前目录生成一个 .git 目录。

使用我们指定目录作为本地Git仓库。

git init 文件夹名称
例如:git init newrepo
初始化后,会在 newrepo 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。

git 命令

创建.gitignore文件

  1. 点击项目文件,右键选择Git Bash进入命令行,输入touch .gitignore,生成.gitignore文件
  2. 在生成的.gitignore文件里输入你要忽略的文件件及其文件即可。
    在这里插入图片描述
    配置规则:

以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符;
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;

配置好就可以实现上传时忽略你不不需要上传的文件了!

git status查看当前文件状态。

没有被添加的文件为红色显示
在这里插入图片描述

git add 文件名称(文件夹) ,将文件或者文件夹中的所有文件放到暂存区当中。

例如:
git add index.html
git add components/

git add 会使 文件变绿
git add . 会使他们全家变绿
在这里插入图片描述

git commit -m < message>

提交此次变更。
提交变更会有对应的日志生成

git log

可以查看提交记录,什么人什么时间提交了commit

git reset 撤销操作(回退版本)

** 注意:git reset HEAD 是将file退回到unstage区**
git reset 命令用于回退版本,可以指定退回某一次提交的版本。

git status 先看一下add 中的文件
git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX.py 就是对某个py文件进行撤销了
git reset HEAD file 即使对file文件夹进行撤销

git reset 命令语法格式如下:

git reset [--soft | --mixed | --hard] [HEAD]
–mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。

git reset [HEAD]
实例:

> $ git reset HEAD^            # 回退所有内容到上一个版本  
>  $ git reset HEAD^hello.php  # 回退 hello.php 文件的版本到上一个版本 
>   $ git  reset  052e           #回退到指定版本

–soft 参数用于回退到某个版本:工作区域不变,只是本地仓库版本回退

git reset --soft HEAD

实例:

$ git reset --soft HEAD~3 # 回退上上上一个版本

–hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:

git reset --hard HEAD

实例:

可以先使用git log 查看日志 回退到某个版本 使用git reset < hash >
hash 就是 commit 后面的字符串
在这里插入图片描述

$ git reset –hard HEAD~3 # 回退上上上一个版本

$ git reset –hard bae128 # 回退到某个版本回退点之前的所有信息。

$ git reset --hard origin/master # 将本地的状态回退到和远程的一样

注意:谨慎使用 –hard 参数,它会删除回退点之前的所有信息。

–mixed 除了工作区域不回退,其他区域都回退
HEAD 说明:

HEAD 表示当前版本

HEAD^ 上一个版本

HEAD^^ 上上一个版本

HEAD^^^ 上上上一个版本

以此类推…

可以使用 ~数字表示 HEAD~0 表示当前版本

HEAD~1 上一个版本

HEAD^2 上上一个版本

HEAD^3 上上上一个版本

以此类推…

git reset HEAD

git reset HEAD 命令用于取消已缓存的内容。

我们先改动文件 README 文件,内容如下:

在这里插入图片描述

--hard 工作区域、暂存区、本地仓库都回退到上一个版本)(全部要重新编辑时候使用)

-- mixed 工作区内容不变,暂存区和本地仓库都回退了 (重新add时使用)

--soft 工作区域和暂存区都没变,只是本地仓库回退了(重新commit时使用)

HEAD 撤销缓存区的内容,工作区域不变,还是当前版本

简而言之,执行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存。

如果误删,可以使用Git reflog 命令,找到对应版本hash值 ,使用git reset hash值 可以恢复到对应版本

git rm 删除工作区文件

如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示。

git rm 删除文件有以下几种形式:

1、将文件从暂存区和工作区中删除:

git rm <file>
例如:
git rm runoob.txt

2、如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f。

强行从暂存区和工作区中删除修改后的 runoob.txt 文件:

git rm -f runoob.txt

3、如果想把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可:

git rm --cached <file>

git rm 与 git reset的区别

git rm:用于从工作区和索引中删除文件
git reset:用于将当前HEAD复位到指定状态。一般用于撤消之前的一些操作(如:git add,git commit等)。

git rm file_path 删除暂存区和分支上的文件,同时工作区也不需要
git rm --cached file_path 删除暂存区或分支上的文件, 但工作区需要使用, 只是不希望被版本控制
git reset HEAD 回退暂存区里的文件

git reflog (查看所有记录)

git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

如果误删,可以使用此命令,找到对应版本hash值 ,使用git reset hash值 可以恢复到对应版本

git diff

git diff 命令比较文件的不同,即比较文件在暂存区和工作区的差异。

git diff 命令显示已写入暂存区和已经被修改但尚未写入暂存区文件对区别。

git diff 有两个主要的应用场景。

比较工作区与暂存区:git diff
比较暂存区与本地版本库中最近一次commit的内容: git diff --cached
比较工作区与本地版本库中最近一次commit的内容:git diff HEAD
比较两个commit之间的差异:git diff <commit-i d> <commit-id>
显示摘要而非整个 diff:git diff --stat

git checkout

撤销工作区修改
git checkout - - 文件名 只在工作区域内有用,相当于Ctrl+z 操作(没什么用)

创建并切换分支:  git checkout -b 分支名
切换分支: git checkout 分支名
在指定定分支新创建并切换分支:git checkout -b 分支名  指定分支(可以是主分支)

git branch

查看所有分支:git branch
创建分支: git branch 分支名
删除本地已合并的分支:git branch -d 分支名
删除远程分支:git push origin --delete 分支名

注意: 在删除远程分支时,同名的本地分支并不会被删除,所以还需要单独删除本地同名分支

git merge

无冲突合并
git merge

第一次合并会替换原分支,继续合并会冲突
在这里插入图片描述
在这里插入图片描述
根据三个选项来选择:

Accept Current Change:保留当前分支
Accept Incoming Change:保留新分支
Accept Both Change:两个分支都保留

冲突后合并还在继续,再次add . ,commit

合并前,最好先以主分支为模板,新建一个分支,来测试
git clone 克隆代码

git push 推送分支到远程

git push origin master 指定远程仓库名和分支名

git pull 从远程拉取代码(下载远程代码并合并)

使用git pull的会将本地的代码更新至远程仓库里面最新的代码版本

git fetch 从远程拉取代码

git fetch只会将本地库所关联的远程库的commit id更新至最新
`

git pull看起来像git fetch+get merge,但是根据commit ID来看的话,他们实际的实现原理是不一样的

尽量不要用git pull,用git fetch和git merge代替它。

查看远程仓库的数量(简单信息)

git remote -v

查看某个远程仓库的具体信息,以origin为例:

git remote show origin

github ssh配置

由于你的本地 Git 仓库和 GitHub 仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息:
输入 ssh-keygen
会弹出
在这里插入图片描述
这里的地址就是密钥存放地址

C:\Users\Administrator.USER-20151030OT.ssh

之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。

成功的话会在 C:\Users\Administrator.USER-20151030OT.ssh 下生成 .ssh 文件夹,进去,打开 (用记事本打开即可)id_rsa.pub,复制里面的 key。

在这里插入图片描述
进入github进行设置
在这里插入图片描述

在这里插入图片描述
将KEY复制进去就可以了

git命令可以使用别名 ,设置可以百度

如何把新项目提交到github

  1. 打开项目所在文件夹,打开git bash,使用git init初始化一个git仓库,初始化后就可以开始你的项目
  2. git add . 把所有文件添加到暂存区
  3. git commit -m ‘提交信息’ 把暂存区内容提交到仓库中
  4. git remote add 远程仓库名称 远程仓库地址

实例:

git remote add NewBlog https://github.com/XX/NewBlog.git
  1. git push 远程仓库名 分支名
    如果不知道远程仓库名称,可以使用 git remote -v 查看远程仓库名
    例:

NewBlog https://github.com/Leal-Lee/NewBlog.git (fetch)
NewBlog https://github.com/Leal-Lee/NewBlog.git (push)
NewBlog 就是远程分支的名称

实例:

  git push NewBlog master 

这里的master是主分支
这样,就可以把一个新项目推送到github上了

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值