git命令行使用大全

       首先啰嗦一下我为什么要建git这个文件夹(假装你们也很想知道),之前一直用的是git命令行操作,用了半年的vscode,突然发现,以前经常用的命令行都忘得差不多了,很多比较基础的东西慢慢印象也不深了,于是我决定重新去学习并且总结一下git相关的知识和git相关的问题及其解决方法(包括不局限于命令行和编辑器中遇到的git问题)。先记录一下自己的学习笔记吧。

零、创建一个git仓库

git init

一、添加文件到仓库

1、使用命令git add 文件全路径,注意,可反复多次使用,添加多个文件;

2、使用命令git commit -m “备注信息”,完成。

二、查看仓库当前的状态

git status:红色提示表示还没有add,绿色提示表示还没有commit

三、查看文件做出了什么修改

git diff:工作区和暂存区的区别

git diff –cached:暂存区和当前分支的区别

四、查看之前提交过的所有历史记录

git log

查看简洁模式信息

git log --pretty=oneline

五、提交版本后退

git reset --hard head^

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

注:这个意思就是之前提交了A,又提交了B,又提交了C,提交完C后,想回到B版本,就使用此方法。

如果使用git reset -- hard head 表示直接清空当前未提交的。

git reset – hard 版本号:表示返回该版本号。

六、查看所有历史上传版本

git reflog

七、删除当前工作区中的修改

git checkout – 文件名

分两种情况:

一种是文件自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是文件已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态(还是只会还原工作区中的修改)。

八、把暂存区中的存储的撤回到工作区中

git reset head 文件名

九、删除文件

rm 文件名

从版本库中删除文件:git rm 文件名,然后git commit –m “注释信息”

恢复删除的文件:git checkout -- 文件名

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。但是,当工作区中的内容没有提交到库,被删除后又还原,将不会保留最后一次提交后,工作区中修改的内容。

十、将代码上传(push)到远程的服务器上

git push 服务器的地址 所属分支的名称

1、将远端的服务器地址写成变量名的形式:

git remote add 变量名 远程服务器地址

例:git remote add origin https://github.com/huoqishi/test002.git

提交代码:git push origin 所属分支的名称

2、在push时加上-u参数,就会默认建立本地当期那分支与远程指定分支的关联,下一次push时就不需要输入分支名了,直接输入git push origin即可

十一、将远端服务器的代码下载(pull)/克隆(clone)下

1、pull

需要先创建一个本地的文件夹,并初始化一个仓库,执行 git pull 远端服务器的链接 远端所属分支名称

2、clone

先创建一个本地文件夹,不用初始化仓库,直接执行git clone远端服务器的链接 远端所属分支名称

十二、操作分支

1、创建分支

git branch 分支名

2、查看分支

git branch

3、切换分支

gitcheckout 分支名

4、合并分支

git merge 分支名:git会将指定的分支合并到当前分支

5、删除分支

git branch –d 分支名

6、创建并切换到该分支

git checkout –b 分支名

十三、解决冲突

当两个分支的情况下都对文件做出了修改,在合并的时候,就会发生冲突。通过把git合并失败的文件手动编辑成为我们希望看到的内容,再提交。使用git log –graph命令可以查看分支的合并图。

十四、分支策略

在实际开发中,我们应该按照几个基本的原则进行分支的管理:

1、master分支应该是非常稳定的,也就是用来发布新版本,平时不能在上边干活。平时都在自己的分支上干活,也就是说分支是相对不稳定的,到某个时候,把自己的分支合并到master上。

十五、普通模式和快速模式

默认在合并的时候会使用快速模式,当执行git merge –no-ff –m “注释”的时候,关闭了快速模式。在普通模式中合并,有历史分支,能看出来曾经做过合并;而快速模式(fast forward)合并就看不出曾经做过合并。

十六、bug的修复

代码中经常会出现bug,通常使用的方法就是创建一个分支,在分支上修复bug,然后和master合并,最后删除创建的分支即可。

1、暂时储存当前不提交的代码,(可以在修复完bug的时候恢复)

git stash

2、查看储存的地方

git stash list

3、恢复到之前的编辑状态,但是不删除之前创建的stash

git stash apply

删除stash:git stash drop

4、恢复到之前的编辑状态,并删除stash内容

git stash pop

注:可以多次创建stash,在修复完bug时,可以使用git stash list查看版本,然后使用git stash apply stash@{版本号}恢复当想要的stash保存的状态

十七、强行删除没有被合并过的分支

git branch –D 文件名

十八、查看远程库的信息

git remote

查看远程库的详细信息

git remote –v:显示可以抓取和推送的origin的地址,如果没有推送权限,就看不到push的地址。

十九、创建远程master上的分支到本地

git checkout –b 分支名1 origin/分支名1

二十、多人协作开发模式下

1、首先驶入使用git push origin 分支名 推送自己的修改

2、如果推送失败,则因为远程分支比你的本地内容新,需要先用git pull视图合并

3、如果合并有冲突,就解决冲突,并在本地提交

4、没有冲突或者解决掉冲突后,就使用git push origin 分支名 推送就能成功。

如果girl pull 提示no tracking information,说明本地分支和远程分支的连接关系没有创建,使用命令girl branch --set-upstream-to 分支名 origin/分支名

二十一、标签

1、新建标签

git tag 标签名

2、查看所有标签

git tag

3、默认的标签时打在最新提交的commit上。想要在历史提交的上打标签

git tag 标签名 之前commit的版本号

4、查看标签的详细信息

git show 标签名

5、创建带有说明的标签名

git tag –a 标签名 –m “说明” 之前commit的版本号

6、删除标签

git tag –d 标签名

因为嘻哈UN该敬爱呢的标签都只是存储在本地,不会自动推送到远程,所以打错的标签可以在本地安全删除。

7、推送标签到远程

git push origin 标签名

8、一次把所有的标签名都推送到远程

git push origin –tags

9、删除远程的标签

先删除本地的:git tag –d 标签名

再从远程删除:git pushorigin :refs/tags/标签名

注:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在另一个分支,那么这两个分支都可以看到这个标签。

 

 

 

 

 

 

 

 

 

 

 

 

 

### Git 命令行使用指南 Git 提供了一套丰富的命令来支持各种操作,涵盖了从初始化仓库到远程协作等多个方面。以下是 Git 命令行的一些常用和重要命令: #### 配置工具 设置用户名和邮箱以便记录提交信息: ```bash git config --global user.name "Your Name" git config --global user.email "you@example.com" ``` 查看当前配置的信息: ```bash git config --list ``` #### 创建新仓库或克隆现有仓库 创建一个新的本地仓库: ```bash git init ``` 克隆一个已有的远程仓库: ```bash git clone https://github.com/user/repo.git ``` #### 工作流基础命令 检查工作目录状态: ```bash git status ``` 添加文件至暂存区: ```bash git add <file> ``` 提交更改到本地库: ```bash git commit -m "Commit message" ``` 移除文件并追踪删除动作: ```bash git rm <file> ``` 重命名/移动文件同时更新索引: ```bash git mv old_file new_file ``` #### 查看历史记录与差异比较 显示最近一次提交的日志摘要: ```bash git log --oneline ``` 对比工作树中的改动与最后一次提交的不同之处: ```bash git diff HEAD ``` 展示特定文件的历史变更情况: ```bash git blame <filename> ``` #### 远程交互操作 向远程服务器推送最新的修改: ```bash git push origin main # 或者 master,取决于默认分支名称 ``` 拉取最新版本的代码并与本地合并: ```bash git pull origin main ``` 获取远端所有分支及其对应的哈希值: ```bash git fetch ``` #### 分支管理 列出所有的本地及远程分支: ```bash git branch -a ``` 新建一个名为`feature_x`的新分支: ```bash git checkout -b feature_x ``` 切换回主干(main/master)继续开发: ```bash git checkout main ``` 将特性分支合并入主线: ```bash git merge feature_x ``` 删除不再需要的功能分支: ```bash git branch -d feature_x ``` #### 解决冲突 当发生冲突时解决它们之后标记为已处理: ```bash git add . git commit ``` 撤销尚未被加入暂存区域的变化: ```bash git reset filename ``` 恢复指定文件到上次提交的状态: ```bash git checkout -- <path_to_file> ``` 以上只是部分常用的 Git CLI 操作[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值