三 Git
Git
上传到github先git init, git add . ,git commit -m ‘ ‘, 再关联远程库
Git 中的三个区域:工作区、暂存区、Git 仓库。
工作区:处理工作的区域
暂存区:已完成的工作的临时存放区域,等待被提交
Git 仓库:最终的存放区域
Git 中的三种状态:已修改 modified 已暂存 staged 已提交 committed
已修改:表示修改了文件,但还没将修改的结果放到暂存区。
已暂存:表示对已修改文件的当前 版本做了标记,使之包含 在下次提交的列表中。
已提交:表示文件已经安全地保存 在本地的 Git 仓库中。
注意:
⚫ 工作区的文件被修改了,但还没有放到暂存区,就是已修改状态。
⚫ 如果文件已修改并放入暂存区,就属于已暂存状态。
⚫ 如果 Git 仓库中保存着特定版本的文件,就属于已提交状态。
Git的基本操作
git init 命令会创建一个名为 .git 的隐藏目录,这个 .git 目录就是当前项目的 Git 仓库,里面包含了初始的必要文件,这些文件是 Git 仓库的必要组成部分。
git add 开始跟踪一个文件,git add . 一次性将所有的新增和修改过的文件加入暂存区
git status 命令查看文件处于什么状态
git commit 命令进行提交, 其中 -m 选项后面是本次的提交消息,用来对提交的内容做进一步的描述:
1
git commit -m '什么信息'
跳过使用暂存区域
Git 标准的工作流程是工作区 → 暂存区 → Git 仓库。Git 工作的流程简化为了工作区 → Git 仓库。
1 | git commit -a -m '描述信息' |
移除文件
从 Git 仓库中移除文件的方式有两种:
① 从 Git 仓库和工作区中同时移除对应的文件
② 只从 Git 仓库中移除指定的文件,但保留工作区中对应的文件
Git分支的概念
master 主分支
功能分支
创建新分支 git branch 分支名称
基于当前分支,创建一个新的分支,创建好分支后,当前位置还是在master分支上
切换分支 git checkout 分支名称
可以切换到指定的分支上进行开发
分支的快速创建和切换 git checkout -b 分支名称
合并分支 先切换到 master分支上,再运行 git merge 分支名称 命令,来合并功能分支
功能分支的代码开发测试完毕之后,可以使用命令,将完成后的代码合并到 master 主分支上
删除分支 git branch -d 分支名称
当把功能分支的代码合并到 master 主分支上以后,就可以使用命令,删除对应的功能分支
6、git remote prune origin 清理本地仓库中与远程仓库中origin关联的已经不存在的分支引用
远程分支操作
- 将本地分支推送到远程仓库
如果是第一次将本地分支推送到远程仓库,需要运行如下的命令:
gitlab的操作,git pull origin 分支名
查看远程仓库中所有的分支列表
通过如下的命令,可以查看远程仓库中,所有的分支列表的信息:
- 跟踪分支
跟踪分支指的是:从远程仓库中,把远程分支下载到本地仓库中。需要运行的命令如下:
拉取远程分支的最新的代码
首先切换到本地分支
git pull origin 远程分支名
可以使用如下的命令,把远程分支最新的代码下载到本地对应的分支中:
删除远程分支
可以使用如下的命令,删除远程仓库中指定的分支:
合并分支冲突
如果在两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法干净的合并它们。 此时,我们需要打开 这些包含冲突的文件然后手动解决冲突。、
git clone
git init
然后git clone +url
如果连接不上就
https://blog.csdn.net/greatcoder/article/details/126138230
git clone https://ghproxy.com/+github网站地址
就比如 git clone https://ghproxy.com/https://github.com/HaogegeShy/jingdong.git
git问题error: remote origin already exists
https://blog.csdn.net/qq_39208536/article/details/125231265
如果你clone下来一个别人的仓库,在此基础上完成你的代码,推送到自己的仓库可能遇到如下问题:
error: remote origin already exists.表示远程仓库已存在。
因此你要进行以下操作:
1、先输入git remote rm origin 删除关联的origin的远程库
2、关联自己的仓库 git remote add origin https://gitee.com/xxxxxx.git
3、最后git push origin master,这样就推送到自己的仓库了。
git代码提交到远程仓库时
选用ssh的方式
git rebase和git merge的区别
1、rebase变基,把当前的commit放到公共分支的最后面,merge把当前的commit和公共分支合并在一起,会产生一个合并的commit;
2、用merge命令解决完冲突后会产生一个commit,而用rebase命令解决完冲突后不会产生额外的commit。
merge中fast-forward 不会产生commit提交,—no-ff 会产生commit提交