git常用命令

本文详细介绍了Git中工作区、暂存区及版本库的概念,并解释了如何使用Git命令进行文件管理,包括添加、删除、比较文件状态等操作,以及如何进行分支管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生成公钥

ssh-keygen -t rsa -C "your_email@youremail.com

工作区、暂存区、版本库

  1. 工作区、暂存区和版本库之间是可以相互切换的。
    1. git add 将工作区的文件添加到暂存区
    2. git commit 将暂存区的文件添加到版本库
  2. 概念
    1. 工作区:编写文件,修改文件的环境
    2. 暂存区:临时存放文件的环境(git add 之后的环境)
    3. 版本库:最终提交到的环境(git commit之后的环境)

git的相关命令操作

1. git add 添加文件到暂存区
2. git commit -m "描述" 将暂存区的文件保存到版本库
3. rm file 删除工作区的文件
4. git rm file 将暂存区和工作区的文件都删除
5. git rm --cached file 直接删除暂存区的文件,工作区不做修改
6. git diff 比较工作区和暂存区的文件状态(git add 之前的状态)
7. git diff --cached 比较暂存区个版本库的文件的状态(git add 之后的状态)
git diff HEAD 比较工作区和版本库的文件的状态
8. git reset HEAD 将版本库的文件覆盖暂存区的文件
9. git checkout file 将暂存区的文件覆盖工作区的文件
10. git checkout HEAD file 将版本库的文件覆盖暂存区和工作区的文件
11. git reset --hard HEAD^ 切换到上一个版本
12. git log 查看日志

例子

假设:
工作区:a文件
暂存区(index):b文件
版本库:c文件

git diff命令结论

git diff           比较a跟b
git diff --cached  比较b跟c
git diff HEAD      比较a跟c
git reset跟 git checkout结论

git reset HEAD              c覆盖b
git checkout <file>         b覆盖a
git checkout HEAD <file>    c覆盖a,b
git rm命令结论

 git rm          删除a跟b
 git rm --cached 只删除b
 rm file         只删除a

git分支操作的基本命令

创建分支
    git branch fenzhi
切换分支
    git checkout fenzhi   (总和命令)  git checkout -b fenzhi
合并分支 
    git merge fenzhi(合并fenzhi到当前的分支)
删除分支
    git branch -d fenzhi
查看本地分支
    git branch
查看远程分支
    git branch -r

git本地和远程仓库的关联

1.下载github上的项目
    git clone git@github.com:hankanon/名称.git
2.上传到远程分支
git push origin work

3.下载远程分支(本地分支存在远程分支)
git pull origin work

4.下载远程分支到本地(本地分支不存在远程分支)
就相当于现在本地创建一个分支,再将远程的分支拉到本地
git checkout -b work origin/work 

git branch -r       // 查看远程分支(work,master)
git checkout -b work origin/work    //切换到远程分支 work
git pull origin work        //下载远程分支到本地

5.删除最后一次远程提交
git revert HEAD(将远程分支的上一个版本还原到本地,之后在将本地的分支提交到远程)
git push origin master

6.如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,那么可以这么做。

$ git push origin test:master         // 提交本地test分支作为远程的master分支 //好像只写这一句,远程的github就会自动创建一个test分支
$ git push origin test:test              // 提交本地test分支作为远程的test分支

7.如果想删除远程的分支呢?类似于上面,如果:左边的分支为空,那么将删除:右边的远程的分支。

$ git push origin :test              // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心

解决命令冲突

git pull 如果报错,解决办法如下:
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From git.coding.net:hankanon/h5-11-01-webShop
   14f790e..e94cff6  master     -> origin/master
Updating 14f790e..e94cff6
error: Your local changes to the following files would be overwritten by merge:
        a.txt
Please commit your changes or stash them before you can merge.
Aborting
提示错误的时候,冲突的解决办法
1. git add --all
2. git commit -m "修改"
3. git pull
4. 修改冲突文件
5. git  add --all
6. git commit -m "merge"
7. git push
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值