GIT
git配置
在使用
Git
进行版本控制之前,首先需要配置用户名和邮件地址。每一个
Git
提交都会使用这些信息,因此正确配置这些信息非常紧张。
- git
- config
- --global
- user.name
- 你的用户名
-
- git
- config
- --global
- user.email
- 你的邮箱地址
- #git
- config:
- 固定命令,设置git相关配置
- #–global:
- 全局配置;一次配置,整机在使用git时都生效
复制代码
配置后,可以运行如下命令检察是否成功
- git
- config
- --list
-
- #如果信息太多,可以输入
- q
- 退出
复制代码
假如后续想要修改,只需要重新实验一下命令即可
Git基础命令
初始化空的Git仓库
新建一个文件夹或现有的文件夹并不是
Git
仓库,因为文件夹内不包含 .git 文件夹,没有被
Git
管理。可以在新文件夹或现有文件夹中运行以下命令,得到 .git 文件夹,初始化成功后,Git
就可以开始管理该文件夹了。
初始化空的
git
仓库成功后,在项目文件夹中,开启表现隐藏文件,即可检察
.git
文件夹
纪录更新到Git仓库
焦点操作:工作区开发—>将修改后的文件添加到暂存区—>将暂存区的文件纪录到版本库
把工作区变化放到暂存区中
- #
- 将
- index.html
- 添加到暂存区
-
- git
- add
- index.html
-
-
-
- #
- 将css目录下一切添加到暂存区
-
- git
- add
- css
-
-
- #
- .的意思是当前目录下所有变化都暂存,可以一次性把所有变化文件放入暂存区
- git
- add
- .
-
复制代码
把暂存区内容,提交到版本库
Git日志及状态检察
检察全部提交的日志纪录,命令如下
简化检察,可以输入如下命令
检察
git
仓库变化,只能看未提交的全部变更的文件状态
Git版本回退
回退命令语法如下
检察版本号
输入git
reflog命令,可以检察
git
全部的操作纪录,包括你的reset纪录,使用情景:reset后想要再回到最近一次提交的纪录,但发现git
log看不到最近一次提交的纪录了
Git分支
检察分支
- #
- 查看当前版本库所有分支,命令效果中绿色带*代表现在所处的分支
-
- git
- branch
-
复制代码
创建分支
切换分支
- #
- 切换分支命令
-
- git
- checkout
- 分支名
-
复制代码
创建并切换分支
分支合并
首先切换到要合并到的目的分支上
- #
- 切换分支(以master主分支为例)
-
- git
- checkout
- master
-
复制代码
合并命令语法
- #
- 把目标分支(以reg为例)名下的所有记录,
- 合并到当前分支(master)下
-
- git
- merge
- reg
-
复制代码
合并时辩论题目
在两个分支修改了同一个文件并提交过,在合并的时候,就会产生辩论
#比如我在branch2分支时,在hello.txt文件中增长一行"This
is
branch2
vim"
并将纪录更新到Git库
- 86135@LAPTOP-MagicBook14
- MINGW64
- /d/gitrepository/code
- (branch2)
- $
- git
- add
- hello.tx
-
- 86135@LAPTOP-MagicBook14
- MINGW64
- /d/gitrepository/code
- (branch2)
- $
- git
- commit
- -m
- 'branch2提交hello.txt'
- [branch2
- 8c08965]
- ‘branch2提交hello.txt’
-
- 1
- file
- changed,
- 1
- insertion(+)
-
复制代码
#然后我在master分支时,在hello.txt文件中增长一行"This
is
master
vim"
并将纪录更新到Git库
- 86135@LAPTOP-MagicBook14
- MINGW64
- /d/gitrepository/code
- (branch2)
- $
- git
- checkout
- master
- Switched
- to
- branch
- 'master'
- Your
- branch
- is
- up
- to
- date
- with
- 'system/master'.
-
- 86135@LAPTOP-MagicBook14
- MINGW64
- /d/gitrepository/code
- (master)
- $
- git
- add
- hello.txt
-
- 86135@LAPTOP-MagicBook14
- MINGW64
- /d/gitrepository/code
- (master)
- $
- git
- commit
- -m
- 'master提交hello.txt'
- [master
- 882bf98]
- master提交hello.txt
-
- 1
- file
- changed,
- 1
- insertion(+)
复制代码
合并时就会出现下面辩论题目
- 86135@LAPTOP-MagicBook14
- MINGW64
- /d/gitrepository/code
- (master)
- $
- git
- merge
- branch2
- Auto-merging
- hello.txt
- CONFLICT
- (content):
- Merge
- conflict
- in
- hello.txt
- Automatic
- merge
- failed;
- fix
- conflicts
- and
- then
- commit
- the
- result.
复制代码
我们打开hello.txt文件,里面的内容是这样的:
- hello
- world!
- Today
- is
- a
- good
- day!
- <<<<<<<
- HEAD
- This
- is
- master
- vim
- =======
- This
- is
- branch2
- vim
- >>>>>>>
- branch2
复制代码
我们可以手动编辑,修改为我们终极要保留的内容,在解决了文件中的全部辩论后,需要将修改后的文件添加到暂存区,就像寻常提交文件修改一样。
- 86135@LAPTOP-MagicBook14
- MINGW64
- /d/gitrepository/code
- (master|MERGING)
- $
- git
- add
- hello.txt
-
- 86135@LAPTOP-MagicBook14
- MINGW64
- /d/gitrepository/code
- (master|MERGING)
- $
- git
- commit
- -m
- '解决了hello.txt在合并分支时产生的冲突'
- [master
- d548080]
- 解决了hello.txt在合并分支时产生的冲突
复制代码- [/code]
- [size=2]删除分支[/size]
-
- [code]git
- branch
- -d
- 分支名
-
复制代码
假如分支的修改没有被合并到其他分支上,Git
会提示一个类似以下的错误信息:
- error:
- The
- branch
- 'branch_name'
- is
- not
- fully
- merged.
- If
- you
- are
- sure
- you
- want
- to
- delete
- it,
- run
- 'git
- branch
- -D
- branch_name'.
-
复制代码
假如确定要删除该分支而且不在乎丢失该分支的修改,可以使用
- git
- branch
- -D
- <branch_name>
复制代码
命令来强制删除该分支。但这样会丢失掉分支上的未合并修改
Git忽略文件
有的时候,我们某些文件或文件夹不想让
git
进行跟踪管理。这时候可以在
.git
文件夹同级目次下新增.gitignore的忽略文件并写入忽略规则(此处的文件名就是
.gitignore
,不是后缀)
- #
- .gitignore内容:
-
- password.txt
-
-
-
- 其余用法:
-
- #
- 忽略文件夹
-
- css
-
- #
- 忽略文件夹下的某个文件
-
- css/index.js
-
- #
- 忽略文件夹下某类文件
-
- css/*.js
-
复制代码
.gitignore文件在项目中可以根据脚手架自动生成,无需本身编写,固然假如你非要写,以下是Vue官方自动生成的.gitignore文件代码,可供复制使用
- #
- Logs
-
- logs
-
- *.log
-
- npm-debug.log*
-
- yarn-debug.log*
-
- yarn-error.log*
-
- pnpm-debug.log*
-
- lerna-debug.log*
-
-
-
- node_modules
-
- dist
-
- dist-ssr
-
- *.local
-
-
-
- #
- Editor
- directories
- and
- files
-
- .vscode/*
-
- !.vscode/extensions.json
-
- .idea
-
- .DS_Store
-
- *.suo
-
- *.ntvs*
-
- *.njsproj
-
- *.sln
-
- *.sw?
-
复制代码
Git远程仓库
Gitee
注册登录
注册登录
gitee.com
网站以后,添加主邮箱为本身当地
git
仓库设置的邮箱,注意一定要相同,否则无法正确提交
假如忘记了当地设置的邮箱地址:
可以打开控制台输入
git
config
--list
重新检察邮箱地址
固然也可以使用
git
config
--global
user.email
你的邮箱地址重新覆盖原来的邮箱地址
邮箱设置界面不要勾选不公开我的邮箱地址,否则也无法正常提交
新建仓库
常见后跳转到下面页面,得到一个远程仓库的地址链接,一样寻常以.git末端,我们选择SSH路径
SSH配置
我们可以在本机一次性配置
SSH
以后免密登录,SSH
密钥组成和作用如下:
-
作用:
实现当地仓库和
gitee
平台之间免登录的加密数据传输
-
组成:
id_rsa
(私钥文件,存放于客户端的电脑中即可)、id_rsa.pub
(公钥文件,需要配置到
gitee
平台中)
-
SSH
密钥创建与使用步骤:
先在本机生成一个密钥
(以后也可以重新生成、重新配置),打开一个终端,输入以下命令:
- ssh-keygen
- -t
- rsa
- -C
- "你注册账号的邮箱"
-
复制代码
连续敲击
3
次回车,即可在C:\Users\用户名文件夹.ssh目次中生成id_rsa和id_rsa.pub两个文件
使用
VSCode
打开id_rsa.pub文件,复制里面的文本内容
粘贴配置到
码云
->
设置
->
ssh
公钥
中即可
初始化空仓库
先给当地仓库配置个远程仓库的地址,
建立仓库之间的链接
由于每次
push
操作都需要带上远程仓库的地址,非常麻烦,我们可以给仓库设置一个别名
- #
- 给远程仓库设置一个别名
-
- git
- remote
- add
- 仓库别名
- 仓库地址(SSH地址,可以去gitee空仓库的代码页直接复制即可)
-
- git
- remote
- add
- origin
- git@gitee.com:(username)/repository.git
-
-
-
- #
- 如果要删除
- origin
- 这个别名
-
- git
- remote
- remove
- origin
-
-
-
复制代码
注意:推送的当地仓库一定要非空而且当地暂存提交过,不然会报错!这点也很好理解,你传个空的项目到一个空仓库,这可不得给你报错吗
Push向远程推送
- #
- 第一次推送到远程时需要指定具体的分支,因为远程仓库并没有这个分支
-
- #
- 使用
- -u
- 记录
- push
- 到远端分支的默认值,将来直接
- git
- push
- 即可
- git
- push
- -u
- 仓库别名
- 分支名
-
-
- #假设本地有一个feature_branch,远程仓库别名是origin,要将其推送到远程的test_branch,命令就是:
- git
- push
- origin
- feature_branch:test_branch
-
-
-
- #当本地分支和远程目标分支名称相同(本地分支和远程分支都为test_branch)时,可以省略冒号和远程分支名称
- git
- push
- origin
- test_branch
复制代码
同样需要注意可能出现的合并辩论和权限题目。假如远程分支已经有了新的更新,可能需要先拉取更新(git
pull
origin
test_branch)并解决辩论后再进行推送;同时要确保你拥有向远程test_branch分支推送的权限。
Pull从远程拉取
假设当前处于当地的
master
分支,而且盼望拉取远程仓库
origin
中
master
分支的更新到当地
master
分支,可以直接使用以下命令:
示例场景:
假设你和团队成员共同开发一个项目,其他成员已经向远程仓库的
master
分支推送了新的代码提交,你当地的
master
分支处于旧的状态。实验上述
git
pull
origin
master
命令后,Git
会先从远程仓库
origin
的
master
分支获取最新的提交纪录(这一步类似实验
git
fetch
origin
master),然后自动实验将获取到的更新合并到你当地的
master
分支(相当于实验
git
merge
origin/master)。
假如盼望拉取远程仓库
origin
中
master
分支的更新到当地
dev
分支
先切换到
dev
分支:
再将远程master分支更新合并到当地的
dev
分支
假如在合并过程中出现辩论,Git
会提示你解决这些辩论。
检察辩论文件
需要手动编辑辩论的文件,解决辩论后,使用以下命令标记辩论已解决:
- git
- add
- 辩论文件git
- commit
- -m
- '提交阐明'
复制代码
比力差别
在
Git
中,你可以使用多种方式来比力差别,包括比力当地分支、远程分支以及当地和远程分支之间的差别。以下是一些常用的命令和方法:
1.
比力当地分支之间的差别
假设你有两个当地分支
branch1
和
branch2,你可以使用以下命令来比力它们之间的差别:
- git
- diff
- branch1..branch2
复制代码
或者使用
git
diff
的
--name-status
选项来检察文件的更改状态:
- git
- diff
- --name-status
- branch1..branch2
复制代码
2.
比力当地分支与远程分支的差别
假设你有一个当地分支
local_branch
和一个远程分支
origin/remote_branch,你可以使用以下命令来比力它们之间的差别:
- git
- diff
- local_branch
- origin/remote_branch
复制代码
3.
比力当地分支与远程分支的最新提交
假如你只想比力当地分支与远程分支的最新提交,可以使用以下命令:
- git
- diff
- local_branch..origin/remote_branch
复制代码
4.
比力工作目次与暂存区的差别
假如你想检察工作目次(未暂存的更改)与暂存区(已暂存的更改)之间的差别,可以使用以下命令:
它会表现哪些更改已经在工作目次中进行了,但尚未被
git
add
命令添加到暂存区。
5.
比力暂存区与最新提交的差别
假如你想检察暂存区与最新提交之间的差别,可以使用以下命令:
它会表现哪些更改已经被
git
add
命令添加到暂存区,但尚未提交到版本库。
6.
比力工作目次与最新提交的差别
假如你想检察工作目次与最新提交之间的差别,可以使用以下命令:
它会表现哪些更改已经在工作目次中进行了,但尚未被
git
add
命令添加到暂存区,或者已经被
git
add
命令添加到暂存区但尚未提交到版本库。
-
git
diff:
-
只表现工作目次与暂存区之间的差别。
-
不包括已经添加到暂存区但尚未提交的更改。
-
git
diff
HEAD:
-
表现工作目次与最新提交之间的差别。
-
包括已经添加到暂存区但尚未提交的更改。
7.
使用
git
log
检察提交汗青和差别
你可以使用
git
log
命令来检察提交汗青,并使用
--oneline、--graph
等选项来美化输出。例如:
- git
- log
- --oneline
- --graph
复制代码
假如你想检察两个分支之间的提交汗青差别,可以使用以下命令:
问答
题目
1:创建并切换分支
题目:你当前在
master
分支上,盼望创建一个新的分支
feature-a
并切换到该分支。请写出完成此操作的
Git
命令。
答案:
- git
- checkout
- -b
- feature-a
复制代码
题目
2:合并分支
题目:你当前在
feature-a
分支上,而且已经完成了全部工作。如今你盼望将
feature-a
分支的更改合并到
master
分支。请写出完成此操作的
Git
命令。
答案:
- git
- checkout
- mastergit
- merge
- feature-a
复制代码
题目
3:解决合并辩论
题目:在合并
feature-a
分支到
master
分支时,出现了合并辩论。你如何解决这些辩论?请写出解决辩论的步骤。
答案:
-
检察辩论文件:
-
手动编辑辩论文件:打开辩论文件,手动解决辩论。
-
标记辩论已解决:
-
提交合并结果:
题目
4:拉取远程更新
题目:你当前在
dev
分支上,而且盼望拉取远程仓库
origin
中
master
分支的更新到当地
dev
分支。请写出完成此操作的
Git
命令。
答案:
题目
5:比力分支差别
题目:你有两个当地分支
branch1
和
branch2,盼望比力它们之间的差别。请写出完成此操作的
Git
命令。
答案:
- git
- diff
- branch1..branch2
复制代码
题目
6:检察提交汗青
题目:你盼望检察当前分支的提交汗青,而且盼望输出简便的提交信息。请写出完成此操作的
Git
命令。
答案:
题目
7:撤销暂存区的更改
题目:你使用
git
add
命令将一些文件添加到暂存区,但后来决定撤销这些更改。请写出完成此操作的
Git
命令。
答案:
题目
8:撤销工作目次的更改
题目:你修改了一些文件,但后来决定撤销这些更改,恢复到最新提交的状态。请写出完成此操作的
Git
命令。
答案:
题目
9:删除分支
题目:你已经完成了
feature-a
分支的工作,而且已经将其合并到
master
分支。如今你盼望删除
feature-a
分支。请写出完成此操作的
Git
命令。
答案:
题目
10:推送当地分支到远程仓库
题目:你创建了一个新的当地分支
feature-b,而且盼望将其推送到远程仓库
origin。请写出完成此操作的
Git
命令。
答案:
- git
- push
- -u
- origin
- feature-b
复制代码
题目
11:检察远程仓库信息
题目:你盼望检察当前配置的远程仓库信息。请写出完成此操作的
Git
命令。
答案:
题目
12:拉取远程更新
题目:你盼望拉取远程仓库
origin
中的最新更新到当地当前分支。请写出完成此操作的
Git
命令。
答案:
题目:你盼望拉取特定分支master的更新到当地当前分支。请写出完成此操作的
Git
命令。
答案:
这会从远程仓库
origin
的
master
分支拉取更新并合并到当前分支。
题目
13:检察当前分支
题目:你盼望检察当前所在的分支。请写出完成此操作的
Git
命令。
答案:
题目
14:检察文件更改状态
题目:你盼望检察当前工作目次中文件的更改状态。请写出完成此操作的
Git
命令。
答案:
题目
15:检察特定文件的更改汗青
题目:你盼望检察特定文件
example.txt
的更改汗青。请写出完成此操作的
Git
命令。
答案:
题目
16:检察特定提交的详细信息
题目:你盼望检察特定提交
abc123
的详细信息。请写出完成此操作的
Git
命令。
答案:
题目
17:撤销最后一次提交
题目:你刚刚提交了一次更改,但后来决定撤销这次提交。请写出完成此操作的
Git
命令。
答案:
题目
18:恢复误删除的文件
题目:你误删除了一个文件
example.txt,而且盼望恢复该文件。请写出完成此操作的
Git
命令。
答案:
- git
- checkout
- --
- example.txt
复制代码
题目
19:检察远程分支
题目:你盼望检察远程仓库中的全部分支。请写出完成此操作的
Git
命令。
答案:
题目
20:重命名当地分支
题目:你盼望将当地分支
old-branch
重命名为
new-branch。请写出完成此操作的
Git
命令。
答案:
- git
- branch
- -m
- old-branch
- new-branch
复制代码
本文参考:
史上最全
Git
图文教程(非常详细)零基础入门到精通,收藏这一篇就够了-CSDN博客
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |