Git 学习

本文全面介绍了Git版本控制系统的基本操作,包括版本库的创建、文件的添加与提交、状态查看、版本切换、撤销修改、删除文件等核心流程,以及远程仓库的管理、分支和标签的高效运用技巧。

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

创建版本库

通过git init命令把这个目录变成Git可以管理的仓库

mkdir repository  #repository为仓库名
cd repository
git init         #初始化所在目录为Git仓库

添加文件到版本库

分两步走,先添加到stage,再提交到版本库,git add 命令可多次执行,然后commit一次提交所有add

git add <file>   #添加文件到暂存区(stage)
        -f <file>   #强制添加到暂存区(可用于添加忽略文件)
git commit -m "提交说明"  #从暂存区提交到版本库

查看状态、变化 

git status  #查看仓库当前状态
git diff <file>  #比较工作区和暂存区的差异
git diff --cached <file>  #比较暂存区和版本库的差异
git diff HEAD -- <file>  #比较工作区和版本库的差异

版本切换

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

git log  #查看提交历史
git log -1  #查看最后一次提交信息(-2 则是最后两次)
git log --pretty=oneline  #单行格式显示提交历史
        --graph  #显示分支合并图
        --abbrev-commit  #简写的commit_id
git reflog  #查看所有操作记录,包括删除的commit记录
git reset --hard HEAD^  #回退到上一版本
# HEAD 表当前版本, HEAD^ 表上一版本,HEAD^^ 表上两版本,HEAD~99 表上99版本。
git reset --hard commit_id  #切换到指定版本

撤销修改

若已commit但没提交到远程库,可用版本回退进行撤销

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

git checkout -- <file>  #撤销工作区的修改
git reset HEAD <file>  #撤销暂存区的修改

删除文件

方法1.工作区删除文件,然后正常提交

rm <file>  #工作区删除
git add <file>  #将修改提交至暂存区
git commit -m "说明"  #提交到版本库

方法2.直接命令删除工作区和暂存区,然后提交版本库

git rm <file>   #删除工作区和暂存区文件
git commit -m "说明"  #提交到版本库

远程仓库

  • 创建SSH Key
ssh-keygen -t rsa -C "youremail@example.com"  #生成的Key在家目录.ssh文件夹里面,pub后缀是公钥,另一个是私钥。
  • 添加远程库

除第一次关联,之后push不用加-u选项

git remote add origin git@github.com:gitname/repo-name.git  #添加远程仓库
git remote  #查看远程库信息
           -v  #显示详细信息
git push -u origin <branch>  #推送并关联指定分支到远程库
  • 从远程库克隆
git clone git@github.com:gitname/repo-name.git  #将远程仓库克隆到当前目录
git pull  #拉取远程仓库内容
  • pull到远程库失败
git pull --rebase origin master

#github与本地代码合并

git pull #推送成功

分支管理

git branch <branch>  #创建分支
git checkout <branch>  #切换到指定分支
git checkout -b <branch>  #创建并切换到该分支
git branch  #查看现有分支
git branch -d <branch>  #删除指定分支
git checkout -b branch-name origin/branch-name  #在本地创建和远程分支对应的分支
git branch --set-upstream <branch_local> <branch_remote>  #指定本地分支与远程分支的链接
git merge <branch>  #合并指定分支到当前分支
          --no-ff <branch>  #禁用快速合并
git merge --no-ff -m "提交说明" <branch>  #普通方式合并,并附提交说明
git stash  #保存当前工作环境(包括工作区和暂存区)
git stash list  #查看保存的工作列表
git stash apply [stash@{X}]  #恢复工作状态,但不删除stash内容
git stash pop [stash@{X}]  #恢复工作状态,并删除stash内容
git stash drop [stash@{X}]  #删除stash内容
git branch -D <branch>  #强制删除分支(常用于未合并的分支)
git log --graph  #查看分支合并图

标签管理

git tag  #查看现有标签
git tag <tag_name>  #给当前所在的commit打标签
git tag <tag_name> <commit_id>  #给指定commit打标签
git tag -a <tag_name> -m "标签说明" <commit_id>  #给指定commit打标签,并附说明
        -s <tag_name> -m "标签说明" <commit_id>  #用gpg私钥签名
        -d <tag_name>  #删除标签
git show <tag_name>  #显示标签信息
git push origin <tag_name>  #推送标签到远程库
git push origin --tags  #推送所有未推送的标签到远程库
git push origin :refs/tags/<tag_name>  #删除远程标签(先删除本地,再使用该命令删除)

 学习来源:www.liaoxuefeng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值