ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Git使用教程
[打印本页]
作者:
络腮胡菲菲
时间:
2024-12-25 06:59
标题:
Git使用教程
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
init
复制代码
初始化空的
git
仓库成功后,在项目文件夹中,开启表现隐藏文件,即可检察
.git
文件夹
纪录更新到Git仓库
焦点操作:工作区开发—>将修改后的文件添加到暂存区—>将暂存区的文件纪录到版本库
把工作区变化放到暂存区中
#
将
index.html
添加到暂存区
git
add
index.html
#
将css目录下一切添加到暂存区
git
add
css
#
.的意思是当前目录下所有变化都暂存,可以一次性把所有变化文件放入暂存区
git
add
.
复制代码
把暂存区内容,提交到版本库
git
commit
-m
'提交的内容说明'
复制代码
Git日志及状态检察
检察全部提交的日志纪录,命令如下
git
log
复制代码
简化检察,可以输入如下命令
git
log
--oneline
复制代码
检察
git
仓库变化,只能看未提交的全部变更的文件状态
git
status
复制代码
Git版本回退
回退命令语法如下
git
reset
--hard
版本号
复制代码
检察版本号
git
log
--oneline
复制代码
输入git
reflog命令,可以检察
git
全部的操作纪录,包括你的reset纪录,使用情景:reset后想要再回到最近一次提交的纪录,但发现git
log看不到最近一次提交的纪录了
git
reflog
复制代码
Git分支
检察分支
#
查看当前版本库所有分支,命令效果中绿色带*代表现在所处的分支
git
branch
复制代码
创建分支
#
创建分支
git
branch
分支名
复制代码
切换分支
#
切换分支命令
git
checkout
分支名
复制代码
创建并切换分支
git
checkout
-b
分支名
复制代码
分支合并
首先切换到要合并到的目的分支上
#
切换分支(以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
分支,可以直接使用以下命令:
git
pull
origin
master
复制代码
示例场景:
假设你和团队成员共同开发一个项目,其他成员已经向远程仓库的
master
分支推送了新的代码提交,你当地的
master
分支处于旧的状态。实验上述
git
pull
origin
master
命令后,Git
会先从远程仓库
origin
的
master
分支获取最新的提交纪录(这一步类似实验
git
fetch
origin
master),然后自动实验将获取到的更新合并到你当地的
master
分支(相当于实验
git
merge
origin/master)。
假如盼望拉取远程仓库
origin
中
master
分支的更新到当地
dev
分支
先切换到
dev
分支:
git
checkout
dev
复制代码
再将远程master分支更新合并到当地的
dev
分支
git
pull
origin
master
复制代码
假如在合并过程中出现辩论,Git
会提示你解决这些辩论。
检察辩论文件
git
status
复制代码
需要手动编辑辩论的文件,解决辩论后,使用以下命令标记辩论已解决:
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
diff
复制代码
它会表现哪些更改已经在工作目次中进行了,但尚未被
git
add
命令添加到暂存区。
5.
比力暂存区与最新提交的差别
假如你想检察暂存区与最新提交之间的差别,可以使用以下命令:
git
diff
--cached
复制代码
它会表现哪些更改已经被
git
add
命令添加到暂存区,但尚未提交到版本库。
6.
比力工作目次与最新提交的差别
假如你想检察工作目次与最新提交之间的差别,可以使用以下命令:
git
diff
HEAD
复制代码
它会表现哪些更改已经在工作目次中进行了,但尚未被
git
add
命令添加到暂存区,或者已经被
git
add
命令添加到暂存区但尚未提交到版本库。
git
diff
:
只表现工作目次与暂存区之间的差别。
不包括已经添加到暂存区但尚未提交的更改。
git
diff
HEAD
:
表现工作目次与最新提交之间的差别。
包括已经添加到暂存区但尚未提交的更改。
7.
使用
git
log
检察提交汗青和差别
你可以使用
git
log
命令来检察提交汗青,并使用
--oneline、--graph
等选项来美化输出。例如:
git
log
--oneline
--graph
复制代码
假如你想检察两个分支之间的提交汗青差别,可以使用以下命令:
git
log
branch1..branch2
复制代码
问答
题目
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
分支时,出现了合并辩论。你如何解决这些辩论?请写出解决辩论的步骤。
答案
:
检察辩论文件
:
git
status
复制代码
手动编辑辩论文件
:打开辩论文件,手动解决辩论。
标记辩论已解决
:
git
add
<辩论文件>
复制代码
提交合并结果
:
git
commit
复制代码
题目
4:拉取远程更新
题目
:你当前在
dev
分支上,而且盼望拉取远程仓库
origin
中
master
分支的更新到当地
dev
分支。请写出完成此操作的
Git
命令。
答案
:
git
pull
origin
master
复制代码
题目
5:比力分支差别
题目
:你有两个当地分支
branch1
和
branch2,盼望比力它们之间的差别。请写出完成此操作的
Git
命令。
答案
:
git
diff
branch1..branch2
复制代码
题目
6:检察提交汗青
题目
:你盼望检察当前分支的提交汗青,而且盼望输出简便的提交信息。请写出完成此操作的
Git
命令。
答案
:
git
log
--oneline
复制代码
题目
7:撤销暂存区的更改
题目
:你使用
git
add
命令将一些文件添加到暂存区,但后来决定撤销这些更改。请写出完成此操作的
Git
命令。
答案
:
git
reset
复制代码
题目
8:撤销工作目次的更改
题目
:你修改了一些文件,但后来决定撤销这些更改,恢复到最新提交的状态。请写出完成此操作的
Git
命令。
答案
:
git
checkout
--
<文件名>
复制代码
题目
9:删除分支
题目
:你已经完成了
feature-a
分支的工作,而且已经将其合并到
master
分支。如今你盼望删除
feature-a
分支。请写出完成此操作的
Git
命令。
答案
:
git
branch
-d
feature-a
复制代码
题目
10:推送当地分支到远程仓库
题目
:你创建了一个新的当地分支
feature-b,而且盼望将其推送到远程仓库
origin。请写出完成此操作的
Git
命令。
答案
:
git
push
-u
origin
feature-b
复制代码
题目
11:检察远程仓库信息
题目
:你盼望检察当前配置的远程仓库信息。请写出完成此操作的
Git
命令。
答案
:
git
remote
-v
复制代码
题目
12:拉取远程更新
题目
:你盼望拉取远程仓库
origin
中的最新更新到当地当前分支。请写出完成此操作的
Git
命令。
答案
:
git
pull
origin
复制代码
题目
:你盼望拉取特定分支master的更新到当地当前分支。请写出完成此操作的
Git
命令。
答案:
git
pull
origin
master
复制代码
这会从远程仓库
origin
的
master
分支拉取更新并合并到当前分支。
题目
13:检察当前分支
题目
:你盼望检察当前所在的分支。请写出完成此操作的
Git
命令。
答案
:
git
branch
复制代码
题目
14:检察文件更改状态
题目
:你盼望检察当前工作目次中文件的更改状态。请写出完成此操作的
Git
命令。
答案
:
git
status
复制代码
题目
15:检察特定文件的更改汗青
题目
:你盼望检察特定文件
example.txt
的更改汗青。请写出完成此操作的
Git
命令。
答案
:
git
log
example.txt
复制代码
题目
16:检察特定提交的详细信息
题目
:你盼望检察特定提交
abc123
的详细信息。请写出完成此操作的
Git
命令。
答案
:
git
show
abc123
复制代码
题目
17:撤销最后一次提交
题目
:你刚刚提交了一次更改,但后来决定撤销这次提交。请写出完成此操作的
Git
命令。
答案
:
git
reset
--soft
HEAD~1
复制代码
题目
18:恢复误删除的文件
题目
:你误删除了一个文件
example.txt,而且盼望恢复该文件。请写出完成此操作的
Git
命令。
答案
:
git
checkout
--
example.txt
复制代码
题目
19:检察远程分支
题目
:你盼望检察远程仓库中的全部分支。请写出完成此操作的
Git
命令。
答案
:
git
branch
-r
复制代码
题目
20:重命名当地分支
题目
:你盼望将当地分支
old-branch
重命名为
new-branch。请写出完成此操作的
Git
命令。
答案
:
git
branch
-m
old-branch
new-branch
复制代码
本文参考:
史上最全
Git
图文教程(非常详细)零基础入门到精通,收藏这一篇就够了-CSDN博客
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4