git的使用

Git操作基本指令:

查看本地版本:git --version

设置用户签名:git config --global user.name 用户名

设置用户邮箱:git config --global user.email 邮箱

初始化本地库:git init

查看本地库状态:git status

添加到暂存区:git add 文件名

添加所有修改、已删除的文件到暂存区:git add -u 文件路径

添加所有修改、已删除、新增的文件到暂存区:git add -A 文件路径

查看所有修改、已删除但是没有提交的文件:git add -i 文件路径

提交到本地库:git commit -m “日志信息” 文件名

修改上次提交的描述信息:git commit --amend

不包括未被版本库跟踪的文件,等同于先调用了 “git add -u” :git commit -a

提交时显示所有diff信息:git commit -v

查看历史记录:git reflog

查看版本详细信息:git log

以图形化的方式显示提交历史的关系,这就可以方便地查看提交历史的分支信息,当然是控制台用字符画出来的图形:git log --graph

查看文件内容:cat 文件名

删除暂存区文件:git rm --cached 文件名

版本穿梭:git reset --hard 版本号(移动head指针指向)

分支操作:

查看分支:git branch -v

查看分支合并图:git log --graph

创建分支:git branch 分支名

创建分支与指定的远程分支建立追踪关系:git branch --track 分支名称 远程分支名称

删除本地分支:git branch -d 分支名称

强制删除指定的本地分支:git branch -D 分支名称

修改分支名称:git branch -m 原分支名 新分支名

强制修改分支名:git branch -M 原分支名 新分支名

切换分支:git checkout 分支名

创建并切换到指定分支 保留所有提交记录:git checkout -b 分支名

创建并切换到指定分支 删除所有提交记录:git checkout -orphan 分支名称

替换本地的改动 新增的文件和已添加到暂存区的内容不受影响:git checkot 文件路径

把指定的分支合并到当前分支上:git merge 分支名

把已经提交的记录合并到当前分支:git cherry-pick

操作远程仓库:

git remote -v :列出远程仓库的详细信息 在别名之后列出URL地址

git remote add 远程仓库的别名 远程仓库的URL地址:添加远程仓库

git remote rename 原远程仓库的别名 新的别名:修改远程仓库的别名

git remote remove 远程仓库的别名:删除指定名称的远程仓库

git remote set -url 远程仓库的别名 新远程仓库的url地址:修改远程仓库的url地址
在这里插入图片描述
推送本地分支到远程仓库:git push 别名 分支

git push远程仓库别名 --delete 远程分支名 :删除指定远程仓库的分支

拉取远程库分支到本地库:git pull 别名 分支

文件操作

比较文件差异

比较当前文件和暂存区中文件的差异,显示没有暂存起来的更改
$ git diff

比较暂存区中的文件和上次提交时的差异
$ git diff --cached
$ git diff --staged

比较当前文件和上次提交时的差异
$ git diff HEAD

查看从指定的版本之后改动的内容
$ git diff

比较两个分支之间的差异
$ git diff <分支名称> <分支名称>

查看两个分支分开后各自的改动内容
$ git diff <分支名称>…<分支名称>

查看文件列表
默认查看所有缓存的文件
$ git ls-files

查看未被跟踪的文件
$ git ls-files -o

查看被修改的文件
$ git ls-files -modified

查看暂存区中文件明细
$ git ls-files -s

删除文件

git rm -r 文件路径 移除跟踪指定的文件夹,并从本吧第仓库的文件加中删除
#删除工作区未跟踪文件
$ rm

移除工作区所有未跟踪文件
一般会加上参数-df,-d表示包含目录,-f表示强制清除。
$ git clean -df

直接从暂存区删除文件,工作区则不做出改变
$ git rm --cached

不但从暂存区中删除,同时删除工作区文件,-f 强制删除
$ git rm -f

撤销文件

重置暂存区,但文件不受影响
相当于将用 “git add” 命令更新到暂存区的内容撤出暂存区,可以指定文件
没有指定 commit ID 则默认为当前 HEAD
$ git reset [<文件路径>]
$ git reset --mixed [<文件路径>]

将 HEAD 的指向改变,撤销到指定的提交记录,文件未修改
$ git reset
$ git reset --mixed

将 HEAD 的指向改变,撤销到指定的提交记录,文件未修改
相当于调用 “git reset --mixed” 命令后又做了一次 “git add”
$ git reset --soft

将 HEAD 的指向改变,撤销到指定的提交记录,文件也修改了
$ git reset --hard

用暂存区中filename文件来覆盖工作区中的filename文件。相当于取消自上次执行git add filename以来(如果执行过)的本地修改。
$ git checkout – filename

生成一个新的提交来撤销某次提交
$ git revert

重命名文件

git mv
-F:强制重命名或移动文件

-k:跳过会导致错误情况的移动或重命名操作。

-n:什么也没做,只显示会发生什么

-v:移动文件时报告文件的名称。

#重命名指定的文件或者文件夹
$ git mv [-v] [-f] [-n] [-k] <源文件/文件夹> <目标文件/文件夹>

操作标签

git tag :打印所有的标签

git tag 标签名称[] :添加轻量标签 指向提交对象的应用 可以指定之前的提交记录

git tag -a 标签名称 -m 标签描述信息 [] :添加带有描述信息的附注标签 可以指定之前的提交记录

git checkout 标签名称:切换到指定标签

git show 标签名称 :查看指定标签信息

git tag -d 标签名称:删除指定的标签

git push 远程仓库的别名 标签名称 :将指定的标签提交到远程仓库

git pish 远程仓库的别名 -tags 将本地所有的标签全部提交到远程仓库

SSH密钥

检查本地是否有SSH Key存在:ls -al ~/.ssh
在 C盘 User 自己的账户下右键 git bash here,ssh-keygen -t rsa -C 自己的邮箱签名
生成SSH Key:
在这里插入图片描述
将公钥复制到平台,接下来再往远程仓库push东西的时候使用SSH连接就不需要登录了。

git错误示例

1、git status(或任何其他git命令)然后会出现fatal: Not a git repository (or any of the parent directories)错误。

必须实际进入目录。比如:

$ git clone https://gitee.com/l-tinghao/git-demo.git
Cloning into 'git-demo'...
remote: Enumerating objects: 24, done.
remote: Counting objects: 100% (24/24), done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 24 (delta 8), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (24/24), done.
Resolving deltas: 100% (8/8), done.

$ git status
fatal: Not a git repository (or any of the parent directories): .git
$ cd git-demo/
$ git status
# On branch master

2:error: Your local changes to the following files would be overwritten by merge: 错误:您对以下文件的本地更改将被merge覆盖:

原因:出现了代码冲突,你正在编译的文件有人修改并且提交,导致二者出现冲突。例如:

$ git pull git-demo2 master
From https://gitee.com/l-tinghao/git-demo
 * branch            master     -> FETCH_HEAD
error: Your local changes to the following files would be overwritten by merge:
        helloGit.txt
Please commit your changes or stash them before you merge.
Aborting
Updating 45b292c..68d6fbb

解决办法:保存你的本地更改

$ git stash
Saved working directory and index state WIP on master: 45b292c Merge branch 'hot-fix'
$ git pull git-demo2 master
From https://gitee.com/l-tinghao/git-demo
 * branch            master     -> FETCH_HEAD
Updating 45b292c..68d6fbb
Fast-forward
 helloGit.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

3、合并产生冲突

原因:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替代我们决定使用哪一个,必须人为决定内容。
解决:编辑有冲突的内容,删除特殊符号,决定要使用的内容
特殊符号:<<<<<<<HEAD当前分支的代码======合并过来的代码>>>>>>>分支名

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

◣星河◢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值