Git版本控制

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。一般情况下每个开发者的电脑上都有一个本地仓库,由大家共同向远程仓库去推送版本迭代信息。

Git的版本控制大致分为4个板块: 

  • 工作目录:存放我们正在写的代码(当我们新版本开发完成之后,就可以进行新版本的提交)
  • 暂存区:暂时保存待提交的内容(新版本提交后会存放到本地仓库)
  • 本地仓库:位于我们电脑上的一个版本控制仓库(存放的就是当前项目各个版本代码的增删信息)
  • 远程仓库:位于服务器上的版本控制仓库(服务器上的版本信息可以由本地仓库推送上去,也可以从服务器抓取到本地仓库)

安装Git

下载安装包:https://git-scm.com/download/win

设定用户名和邮箱:

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

基本命令

初始化一个新的仓库:

git init

克隆一个远程仓库到本地:

git clone remote_repository_url

添加文件到暂存区:

git add filename

提交文件到版本库:

git commit -m "commit message"

查看文件状态:

git status

查看提交历史:

git log

git log --graph

 查看最近一次变更的详细内容:

git show

创建分支:

git branch branch_name

切换分支:

git checkout branch_name

合并分支:

git merge branch_name

拉取远程仓库最新内容:

git pull

推送本地提交到远程仓库:

git push

分支

创建分支:

git branch branch_name

查看所有分支:

git branch

切换分支:

git checkout branch_name

创建并切换到新分支:

git checkout -b new_branch_name

合并分支:

git merge branch_name

删除分支:

git branch -d branch_name

强制删除分支(未合并的分支):

git branch -D branch_name

查看分支合并情况:

git branch --merged

查看未合并的分支:

git branch --no-merged

查看冲突

git diff

变基分支

变基操作,它跟合并不同,合并是分支回到主干的过程,而变基是直接修改分支开始的位置

git rebase master

优选

还可以选择其将他分支上的提交作用于当前分支上,这种操作称为cherrypick:

git cherry-pick <commit id>:单独合并一个提交

远程仓库

将本地仓库中的内容推送到远程仓库:

git remote add 名称 远程仓库地址

git push 远程仓库名称 本地分支名称[:远端分支名称]

克隆项目

git clone 远程仓库地址

抓取、拉取和冲突解决

git fetch 远程仓库 #抓取:只获取但不合并远端分支,后面需要我们手动合并才能提交

git pull 远程仓库 #拉取:获取+合并

比如现在我们本地有两个仓库,一个仓库去修改hello.txt并直接提交,另一个仓库也修改hello.txt并直接提交,会得到如下错误:

To https://github.com/xx/xxx.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/xx/xxx.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

一旦一个本地仓库推送了代码,那么另一个本地仓库的推送会被拒绝,原因是当前文件已经被其他的推送给修改了,产生了冲突,因此需要解决冲突问题 。

如果远程仓库中的提交和本地仓库中的提交没有去编写同一个文件,那么就可以直接拉取,拉取后会自动进行合并,合并完成之后再提交即可:

git pull 远程仓库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fittt_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值