Git命令

Git
介绍:Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
官网地址:https://git-scm.com/
常用命令:

git config user.name   //查看当前登录用户
git config --global --edit  //修改Git的配置文件
[user]
    name = Your Name
    email = your.email@example.com
git config user.name “Your Name”  //将”Your Name”替换为新的用户名。
git config  --global  user.name “Your Name”  //全局将”Your Name”替换为新的用户名。
git remote -v   //显示当前仓库的URL
git remote set-url origin newurl      //将”newurl”替换为新的远程仓库URL

**git的基本框架组成是由 WorkSpace(本地工作区)、Index/Stage(暂存区/缓存区)、Repository(本地仓库)、Remote(远程仓库)。**
git  init  //初始化本地库,在本地生成一个隐藏的.git文件夹
git status     // 查看状态
git  add  文件   //将文件加入到缓冲区
git commit -m " 第一次提交"  文件  //将文件提交到本地库
git  reflog   //查看提交记录
git  log   //查看提交详细记录
git rm --cached  文件   // 将文件从缓冲区删除
 git reset --hard    指针id  //  回滚到指针id对应的版本 
 git branch  -v  //查看分支
 git branch 分支名  // 创建分支
 git  checkout  分支名  // 切换分支 
 git  merge        分支1  // 将分支1合并到当前分支上
 git  clone   远程仓库地址  //  将远程仓库克隆到本地分支
 git pull   远程仓库地址   远程分支名  // 将远程仓库的远程分支拉取到当前分支
 git pull 远程仓库地址  <远程分支名>:<本地分支名>  // 将远程分支拉取到本地分支
 git push  远程仓库地址  本地分支名   // 将本地分支推送到远程仓库的和本地分支同名分支      
 git push 远程仓库地址 <本地分支名>:<远程分支名>   //本地分支推送到远程分支上 

idea进行分支切换注意事项:本地工作空间(分支A)有些文件会被分支B改动,IDEA会弹出对话框,让你选择Force Checkout 或 Smart Checkout;
如果选择Force Checkout, 本地工作空间(分支A)的一些未提交的修改会被覆盖(被分支B覆盖),会有很大可能丢代码!!!
如果选择Smart Checkout,IDEA会先执行stash命令,贮存这些未提交的修改,然后checkout 到分支B,在切换到分支B后,unstash 这些修改,所以A分支本地的这些修改会带到B分支上

1.命令git cherry-pick可以把branch A的commit复制到branch B上。
复制单个提交:git cherry-pick commitId
复制多个提交:git cherry-pick commitId1…commitId3

2.要将 N 次提交压缩成一次提交,可以使用交互式 rebase 来合并提交。以下是具体步骤:
打开终端,进入你的Git仓库所在的目录。
运行以下命令以启动交互式 rebase:
git rebase -i HEAD~N
其中,N 是你想要压缩的提交数量。
这将打开一个交互式界面,显示最近的N个提交。在每个提交的前面,你会看到一个单词,比如 “pick”,表示保留该提交。将你想要合并的提交前的单词改成 “squash” 或 “s”,表示将该提交与前一个提交合并。
保存并关闭编辑器,Git 将会合并你选择的提交。

3.git branch --merged master 列出已经合并到当前分支(比如 master)中的所有分支
git branch --no-merged master 找出哪些分支还没有被合并到 master 分支中
4. 要在提交之前运行代码静态检查工具,并在测试失败时阻止提交,你可以使用 Git 钩子(hooks)来实现

5.SubGit 是将 SVN 到 Git迁移的工具,(相互的)

6.当你运行 git merge 时,Git 会创建一个新的合并提交,将指定分支的更改合并到当前分支。这个合并提交会将两个分支的更改合并在一起,并且保留了两个分支的历史记录。
当你运行 git rebase 时,Git 会将当前分支的提交**“挪动”到目标分支**的最新提交之后。这样做会创建一系列新的提交,其基本原理是将当前分支的更改“重放”在目标分支之上

7.要找到特定提交中已更改的文件列表,可以使用以下命令:
git diff --name-only -name-only 只会打印文件名而不是它们
的路径。

在这里插入图片描述
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3e2145a2660745bebfb20fefff75dc60.png

在这里插入图片描述
在这里插入图片描述
介绍
git reset 命令格式为:
git reset [ --soft | --mixed | --hard ] [< commitid >]
在git的这些命令中git reset是最长常用的,也是最危险的最容易被误用的。它的主要参数是:soft,mixed,hard它们告诉git,当执行reset是,要对index和working copy做什么。

参数
soft:
–soft参数只将其它的commit重置到你选定的HEAD,index和working copy中的数据不变。(本地仓库被回退了)
mixed:
–mixed参数是将HEAD和index重置到你选定的HEAD,而working copy不变。(本地仓库和暂存区被回退了)
hard:
–hard是将HEAD,index,working copy同时改变到你规定的commit上。(本地仓库和暂存区和工作区被回退了)

commit 已经push
回退的方式同上,执行完上面指定命令后 可以看到,但是线上代码还没回退
此时如果你push,会提示:
在这里插入图片描述
点击merge就又回去了,完全没退回去。
此时应该执行:
有可能会让你输入用户名、密码。
git push --force
这样远程代码也就被回退了。

evert是只撤回指定的提交,并保留后续的提交。
git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。
使用“git push”推上远程库:

在这里插入图片描述

在这里插入图片描述

Untracked Files Prevent CheckoutMove or commit them before checkaut
在 Git 中,如果遇到“未跟踪的文件阻止检出”的问题,可以按照以下方法进行处理:

  1. 提交更改:如果你希望保留未跟踪的文件并且它们准备好了,可以将它们添加到暂存区并进行提交:
git add .  
git commit -m "提交未跟踪的文件"
  1. 暂存更改:如果你想暂时保留未跟踪的文件,可以使用 git stash 命令。需要注意的是,默认情况下 git stash 不会存储未跟踪的文件,因此你可以使用以下命令:
git stash -u
  1. 删除或忽略未跟踪的文件:如果未跟踪的文件不需要,可以使用下面的命令删除它们(注意这将永久删除未跟踪的文件):
git clean -f

如果还有未跟踪的目录,可以执行:

git clean -fd

另外,如果你希望保留这些文件并使其不干扰 Git 的操作,可以将它们添加到 .gitignore 文件中。

  1. 强制检出:如果你确定要强制检出(不推荐,因为可能会导致丢失更改),可以使用:
 git checkout -f <分支名称>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值