【无标题】

本文详细介绍了Git的基本操作,包括配置用户信息、克隆仓库、提交更改、分支管理和合并、标签使用等。强调了避免使用`git pull`,推荐使用`git fetch`和`git merge`以更好地控制代码同步。同时,还提到了如何处理远程仓库、分支操作以及解决冲突。通过实例展示了Git在版本控制中的重要性和灵活性。
摘要由CSDN通过智能技术生成

Git操作

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
拉取代码
$ git clone http:xxxxxxxxxxxxx
把这个目录变成Git可以管理的仓库
$ git init


# 提交变化
$ git add <file>
$ git add -a  # 提交所有变化
$ git add -u  # 提交被修改被删除的文件,不包括新文件
$ git add .   # 提交新闻界和被修改的文件,不包括被删除的文件

# 上传备注
$ git commit -m <message>
修改文件
$ cat <filename>
查看结果
$ git status
查看最近修改内容不同
$ git diff <file>
查看版本
$ git log

$ git log --pretty=oneline --abbrev-commit
退回版本
# 退回一个版本
$ git reset --hard HEAD^
# 退回两个版本
$ git reset --hard HEAD^^
# 版本号
$ git reset --hard 1094a
查看命令历史
$ git reflog
查看工作区和版本库区别
$ git diff HEAD -- <filename>
撤销修改
$ git checkout -- <filename>
## 一种是<filename>自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
## 一种是<filename>已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。


## Git同样告诉我们,用命令git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区
## 把暂存区的修改退回到工作区
$ git reset HEAD <file>
删除文件
# 直接删除文件
$ rm <filename>

# git版本库操作
$ git rm <filename>
$ git commit -m "del"

# 误删,用版本库替代工作区
$ git checkout -- <filename>
创建SSH key
# 在用户目录下创建SSH key
$ ssh-keygen -t rsa -C "邮箱"
远程库
# 关联库
$ git remote add origin git@github.com:chyyyu.git

# 上传 第一次上传添加 -u
$ git push -u origin master

# 提交
$ git push --set-upstream origin 分支  # 第一次提交
$ git push origin master

# 拿资源
$ git fetch origin dev

# 拉取下载资源 
$ git branch --set-upstream-to=origin/dev dev  # 设置dev和origin/dev的链接
$ git pull

# 查看远程库信息
$ git remote -v  

# 删除绑定链接
$ git remote rm origin 
本地创建克隆库
$ git clone git@github.com:chyyu.git

分支操作

# 创建分支dev,切换dev
$ git checkout -b dev

$ git switch -c dev

$ git branch dev
$ git checkout dev

# 远程创建origin的dev分支到本地(在本地创建和远程分支对应的分支)
$ git checkout -b dev origin/dev

# 建立本地分支和远程分支的关联
$ git branch --set-upstream branch-name origin/branch-name

# 拉取下载资源
$ git branch --set-upstream-to=origin/dev dev  # 设置dev和origin/dev的链接
$ git pull

# 查看分支
$ git branch

# dev切换分支到master
$ git checkout master

$ git switch master

# 将dev分支合并到当前分支master
$ git merge dev

# 删除分支
$ git branch -d dev

# 强行删除未被合并的分支
$ git branch -D <name>

# 查看分支合并情况
$ git log --graph --pretty=oneline --abbrev-commit

# 禁用fast forward
$ git merge --no-ff -m "merge with no-ff" dev

标签

# 打标签 默认HEAD
$ git tag v1.0

# 查看所有标签
$ git tag

# 忘记打标签的之前版本
$ git log --pretty=oneline --abbrev-commit
$ git tag v0.9 f52c633

# 查看标签信息
$ git show <tagname>

# 还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字
$ git tag -a v0.1 -m "version 0.1 released" 1094adb

# 删除标签
$ git tag -d v0.1

# 推送某个标签到远程
$ git push origin v1.0

# 推送所有标签
$ git push origin --tags

# 删除远程标签
$ git tag -d v0.9  # 本地删除
$ git push origin :refs/tags/v0.9  # 远程删除

不要用git pull,用git fetch和git merge代替它。
git pull的问题是它把过程的细节都隐藏了起来,以至于你不用去了解git中各种类型分支的区别和使用方法。
当然,多数时候这是没问题的,但一旦代码有问题,你很难找到出错的地方。看起来git pull的用法会使你
吃惊,简单看一下git的使用文档应该就能说服你。

将下载(fetch)和合并(merge)放到一个命令里的另外一个弊端是,你的本地工作目录在未经确认的情况下
就会被远程分支更新。当然,除非你关闭所有的安全选项,否则git pull在你本地工作目录还不至于造成
不可挽回的损失,但很多时候我们宁愿做的慢一些,也不愿意返工重来。

pull 抓取更新仓库并合并本地仓库
fetch 抓取最新仓库不合并本地仓库
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值