Git入门
内容纲要

Git入门

Git官网

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

配置用户信息

git config --list  # 查看当前用户信息

git config --global user.name "Your Name"  # 配置姓名,--global 配置所有项目仓库的默认信息
git config --global user.emai mail@163.com # 配置邮箱

新建本地仓库

git init  # 在当前目录新建一个Git仓库,会有一个 .git文件

git init dirName  # 在指定目录新建一个Git仓库,指定目录下会有一个 .git文件

本地仓库与远程仓库关联

git clone remoteUrl  # 直接克隆远程仓库

git remote -v  # 查看与当前仓库关联的远程仓库信息,通常最开始是空的

git remote add origin remoteUrl  # 将当前本地仓库与远程仓库关联,origin 为你给远程仓库的命名
git remote remove origin # 删除命名为origin的远程仓库
git remote rename oldName newName  # 将已配置的仓远程库更名

拉取和上传代码

拉取和上传代码时注意仓库名和分支名的匹配

push代码之前要先commit

git push <远程仓库名> <本地分支>:<远程分支>
git push origin branchName # 指定远程仓库与分支的做法
git push --set-upstream origin branchName # 只需设置upstream,以后就默认这个上传仓库和分支

git pull <远程仓库名> <远程分支名>:<本地分支名>

# push流程
git status # 查看文件变更情况
git add . # 将当前文件夹下所有发生变更的文件上传到暂存区
git commit -m '提交时注明一些信息,主要是说明此次Commit针对什么'
git push

分支管理

git branch -av  # 查看本地和远程仓库的分支情况
git branch newBranch # 新建分支, !!!注意,仓库在init后需要一次提交才能进行分支相关的操作
git checkout branchName # 切换分支
git branch -d branchName # 删除本地分支

在本地新建和删除远程分支

# 在本地新建远程分支
# 创建一个新本地分支
git checkout -b newLocalBranch

# 将新建的本地分支Push到远程仓库
git push origin(remote repository) newLocalBranch:remoteBranch

# 在本地删除远程分支
# 删除远程分支:Push一个空分支到远程仓库
git push origin :remoteBranch

分支合并

Merge

image-20240701203102500

image-20240701203115795

Rebaese

image-20240701203124366

image-20240701203133836

merge和rebase的比较

在开发社区里,有许多关于 merge 与 rebase 的讨论。以下是关于 rebase 的优缺点:

优点:

  • Rebase 使你的提交树变得很干净, 所有的提交都在一条线上

缺点:

  • Rebase 修改了提交树的历史

比如, 提交 C1 可以被 rebase 到 C3 之后。这看起来 C1 中的工作是在 C3 之后进行的,但实际上是在 C3 之前。

一些开发人员喜欢保留提交历史,因此更偏爱 merge。而其他人(比如我自己)可能更喜欢干净的提交树,于是偏爱 rebase。仁者见仁,智者见智。 😀

撤销操作

git revert/reset HEAD # 撤销上一次提交
git revert/reset HEAD^ # 撤销上上次提交
git revert/reset HEAD~n # 撤销上n(n >= 1)次提交

git revert 和 git reset的区别:

git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
1、在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。
2、git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。

3、当要撤销远程仓库时,尽量使用revert,保证其他人不会受你的撤销操作影响。

reset: git reset HEAD~1

image-20240701203142590

image-20240701203149792

revert: git revert HEAD~1

image-20240701203155574

image-20240701203204003

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇