ToB企服应用市场:ToB评测及商务社交产业平台

标题: Git使用教程 [打印本页]

作者: 络腮胡菲菲    时间: 2024-12-25 06:59
标题: Git使用教程
GIT


git配置


在使用
Git
进行版本控制之前,首先需要配置用户名和邮件地址。每一个
Git
提交都会使用这些信息,因此正确配置这些信息非常紧张。
  1. git
  2. config
  3. --global
  4. user.name
  5. 你的用户名
  6.  
  7. git
  8. config
  9. --global
  10. user.email
  11. 你的邮箱地址
  12. #git
  13. config:
  14. 固定命令,设置git相关配置
  15. #–global:
  16. 全局配置;一次配置,整机在使用git时都生效 
复制代码

配置后,可以运行如下命令检察是否成功
  1. git
  2. config
  3. --list
  4.  
  5. #如果信息太多,可以输入
  6. q
  7. 退出
复制代码

假如后续想要修改,只需要重新实验一下命令即可

Git基础命令


初始化空的Git仓库


新建一个文件夹或现有的文件夹并不是
Git
仓库,因为文件夹内不包含 .git 文件夹,没有被
Git
管理。可以在新文件夹或现有文件夹中运行以下命令,得到 .git 文件夹,初始化成功后,Git
就可以开始管理该文件夹了。
  1. git
  2. init
复制代码

初始化空的
git
仓库成功后,在项目文件夹中,开启表现隐藏文件,即可检察
.git
文件夹

纪录更新到Git仓库


焦点操作:工作区开发—>将修改后的文件添加到暂存区—>将暂存区的文件纪录到版本库

把工作区变化放到暂存区中

  1. #
  2. index.html
  3. 添加到暂存区
  4.  
  5. git
  6. add
  7. index.html
  8.  
  9.  
  10. #
  11. 将css目录下一切添加到暂存区
  12.  
  13. git
  14. add
  15. css
  16.  
  17. #
  18. .的意思是当前目录下所有变化都暂存,可以一次性把所有变化文件放入暂存区
  19. git
  20. add
  21. .
  22.  
复制代码

把暂存区内容,提交到版本库

  1. git
  2. commit
  3. -m
  4. '提交的内容说明'
复制代码

Git日志及状态检察


检察全部提交的日志纪录,命令如下
  1. git
  2. log
  3.  
复制代码

简化检察,可以输入如下命令
  1. git
  2. log
  3. --oneline
  4.  
复制代码

检察
git
仓库变化,只能看未提交的全部变更的文件状态
  1. git
  2. status
  3.  
复制代码

Git版本回退


回退命令语法如下
  1. git
  2. reset
  3. --hard
  4. 版本号
  5.  
复制代码

检察版本号
  1. git
  2. log
  3. --oneline
  4.  
复制代码

输入git
reflog命令,可以检察
git
全部的操作纪录,包括你的reset纪录,使用情景:reset后想要再回到最近一次提交的纪录,但发现git
log看不到最近一次提交的纪录了
  1. git
  2. reflog
  3.  
复制代码

Git分支


检察分支

  1. #
  2. 查看当前版本库所有分支,命令效果中绿色带*代表现在所处的分支
  3.  
  4. git
  5. branch
  6.  
复制代码

创建分支

  1. #
  2. 创建分支
  3.  
  4. git
  5. branch
  6. 分支名
复制代码

切换分支

  1. #
  2. 切换分支命令
  3.  
  4. git
  5. checkout
  6. 分支名
  7.  
复制代码

创建并切换分支

  1. git
  2. checkout
  3. -b
  4. 分支名
复制代码

分支合并


首先切换到要合并到的目的分支上
  1. #
  2. 切换分支(以master主分支为例)
  3.  
  4. git
  5. checkout
  6. master
  7.  
复制代码

合并命令语法
  1. #
  2. 把目标分支(以reg为例)名下的所有记录,
  3. 合并到当前分支(master)下
  4.  
  5. git
  6. merge
  7. reg
  8.  
复制代码

合并时辩论题目


在两个分支修改了同一个文件并提交过,在合并的时候,就会产生辩论

#比如我在branch2分支时,在hello.txt文件中增长一行"This
is
branch2
vim"
并将纪录更新到Git库
  1. 86135@LAPTOP-MagicBook14
  2. MINGW64
  3. /d/gitrepository/code
  4. (branch2)
  5. $
  6. git
  7. add
  8. hello.tx
  9. 86135@LAPTOP-MagicBook14
  10. MINGW64
  11. /d/gitrepository/code
  12. (branch2)
  13. $
  14. git
  15. commit
  16. -m
  17. 'branch2提交hello.txt'
  18. [branch2
  19. 8c08965]
  20. ‘branch2提交hello.txt’
  21. 1
  22. file
  23. changed,
  24. 1
  25. insertion(+)
复制代码

#然后我在master分支时,在hello.txt文件中增长一行"This
is
master
vim"
并将纪录更新到Git库
  1. 86135@LAPTOP-MagicBook14
  2. MINGW64
  3. /d/gitrepository/code
  4. (branch2)
  5. $
  6. git
  7. checkout
  8. master
  9. Switched
  10. to
  11. branch
  12. 'master'
  13. Your
  14. branch
  15. is
  16. up
  17. to
  18. date
  19. with
  20. 'system/master'.
  21. 86135@LAPTOP-MagicBook14
  22. MINGW64
  23. /d/gitrepository/code
  24. (master)
  25. $
  26. git
  27. add
  28. hello.txt
  29. 86135@LAPTOP-MagicBook14
  30. MINGW64
  31. /d/gitrepository/code
  32. (master)
  33. $
  34. git
  35. commit
  36. -m
  37. 'master提交hello.txt'
  38. [master
  39. 882bf98]
  40. master提交hello.txt
  41. 1
  42. file
  43. changed,
  44. 1
  45. insertion(+)
复制代码

合并时就会出现下面辩论题目
  1. 86135@LAPTOP-MagicBook14
  2. MINGW64
  3. /d/gitrepository/code
  4. (master)
  5. $
  6. git
  7. merge
  8. branch2
  9. Auto-merging
  10. hello.txt
  11. CONFLICT
  12. (content):
  13. Merge
  14. conflict
  15. in
  16. hello.txt
  17. Automatic
  18. merge
  19. failed;
  20. fix
  21. conflicts
  22. and
  23. then
  24. commit
  25. the
  26. result.
复制代码

我们打开hello.txt文件,里面的内容是这样的:
  1. hello
  2. world!
  3. Today
  4. is
  5. a
  6. good
  7. day!
  8. <<<<<<<
  9. HEAD
  10. This
  11. is
  12. master
  13. vim
  14. =======
  15. This
  16. is
  17. branch2
  18. vim
  19. >>>>>>>
  20. branch2
复制代码

我们可以手动编辑,修改为我们终极要保留的内容,在解决了文件中的全部辩论后,需要将修改后的文件添加到暂存区,就像寻常提交文件修改一样。
  1. 86135@LAPTOP-MagicBook14
  2. MINGW64
  3. /d/gitrepository/code
  4. (master|MERGING)
  5. $
  6. git
  7. add
  8. hello.txt
  9. 86135@LAPTOP-MagicBook14
  10. MINGW64
  11. /d/gitrepository/code
  12. (master|MERGING)
  13. $
  14. git
  15. commit
  16. -m
  17. '解决了hello.txt在合并分支时产生的冲突'
  18. [master
  19. d548080]
  20. 解决了hello.txt在合并分支时产生的冲突
复制代码
  1. [/code]
  2. [size=2]删除分支[/size]
  3. [code]git
  4. branch
  5. -d
  6. 分支名
  7.  
复制代码

假如分支的修改没有被合并到其他分支上,Git
会提示一个类似以下的错误信息:
  1. error:
  2. The
  3. branch
  4. 'branch_name'
  5. is
  6. not
  7. fully
  8. merged.
  9. If
  10. you
  11. are
  12. sure
  13. you
  14. want
  15. to
  16. delete
  17. it,
  18. run
  19. 'git
  20. branch
  21. -D
  22. branch_name'.
  23.  
复制代码

假如确定要删除该分支而且不在乎丢失该分支的修改,可以使用
  1. git
  2. branch
  3. -D
  4. <branch_name>
复制代码

命令来强制删除该分支。但这样会丢失掉分支上的未合并修改



Git忽略文件


有的时候,我们某些文件或文件夹不想让
git
进行跟踪管理。这时候可以在
.git
文件夹同级目次下新增.gitignore的忽略文件并写入忽略规则(此处的文件名就是
.gitignore
,不是后缀)
  1. #
  2. .gitignore内容:
  3.  
  4. password.txt
  5.  
  6.  
  7. 其余用法:
  8.  
  9. #
  10. 忽略文件夹
  11.  
  12. css
  13.  
  14. #
  15. 忽略文件夹下的某个文件
  16.  
  17. css/index.js
  18.  
  19. #
  20. 忽略文件夹下某类文件
  21.  
  22. css/*.js
  23.  
复制代码

.gitignore文件在项目中可以根据脚手架自动生成,无需本身编写,固然假如你非要写,以下是Vue官方自动生成的.gitignore文件代码,可供复制使用
  1. #
  2. Logs
  3.  
  4. logs
  5.  
  6. *.log
  7.  
  8. npm-debug.log*
  9.  
  10. yarn-debug.log*
  11.  
  12. yarn-error.log*
  13.  
  14. pnpm-debug.log*
  15.  
  16. lerna-debug.log*
  17.  
  18.  
  19. node_modules
  20.  
  21. dist
  22.  
  23. dist-ssr
  24.  
  25. *.local
  26.  
  27.  
  28. #
  29. Editor
  30. directories
  31. and
  32. files
  33.  
  34. .vscode/*
  35.  
  36. !.vscode/extensions.json
  37.  
  38. .idea
  39.  
  40. .DS_Store
  41.  
  42. *.suo
  43.  
  44. *.ntvs*
  45.  
  46. *.njsproj
  47.  
  48. *.sln
  49.  
  50. *.sw?
  51.  
复制代码

Git远程仓库


Gitee


注册登录


注册登录
gitee.com
网站以后,添加主邮箱为本身当地
git
仓库设置的邮箱,注意一定要相同,否则无法正确提交
假如忘记了当地设置的邮箱地址:

可以打开控制台输入
git
config
--list
重新检察邮箱地址

固然也可以使用
git
config
--global
user.email
你的邮箱地址重新覆盖原来的邮箱地址
邮箱设置界面不要勾选不公开我的邮箱地址,否则也无法正常提交

新建仓库




常见后跳转到下面页面,得到一个远程仓库的地址链接,一样寻常以.git末端,我们选择SSH路径



SSH配置


我们可以在本机一次性配置
SSH
以后免密登录,SSH
密钥组成和作用如下:



初始化空仓库


先给当地仓库配置个远程仓库的地址,
建立仓库之间的链接

由于每次
push
操作都需要带上远程仓库的地址,非常麻烦,我们可以给仓库设置一个别名
  1. #
  2. 给远程仓库设置一个别名
  3.  
  4. git
  5. remote
  6. add
  7. 仓库别名
  8. 仓库地址(SSH地址,可以去gitee空仓库的代码页直接复制即可)
  9.  
  10. git
  11. remote
  12. add
  13. origin
  14. git@gitee.com:(username)/repository.git
  15.  
  16.  
  17. #
  18. 如果要删除
  19. origin
  20. 这个别名
  21.  
  22. git
  23. remote
  24. remove
  25. origin
  26.  
  27.  
复制代码

注意:推送的当地仓库一定要非空而且当地暂存提交过,不然会报错!这点也很好理解,你传个空的项目到一个空仓库,这可不得给你报错吗

Push向远程推送

  1. #
  2. 第一次推送到远程时需要指定具体的分支,因为远程仓库并没有这个分支
  3.  
  4. #
  5. 使用
  6. -u
  7. 记录
  8. push
  9. 到远端分支的默认值,将来直接
  10. git
  11. push
  12. 即可
  13. git
  14. push
  15. -u
  16. 仓库别名
  17. 分支名
  18.  
  19. #假设本地有一个feature_branch,远程仓库别名是origin,要将其推送到远程的test_branch,命令就是:
  20. git
  21. push
  22. origin
  23. feature_branch:test_branch
  24.  
  25.  
  26. #当本地分支和远程目标分支名称相同(本地分支和远程分支都为test_branch)时,可以省略冒号和远程分支名称
  27. git
  28. push
  29. origin
  30. test_branch
复制代码
复制代码

同样需要注意可能出现的合并辩论和权限题目。假如远程分支已经有了新的更新,可能需要先拉取更新(git
pull
origin
test_branch)并解决辩论后再进行推送;同时要确保你拥有向远程test_branch分支推送的权限。



Pull从远程拉取


假设当前处于当地的
master
分支,而且盼望拉取远程仓库
origin

master
分支的更新到当地
master
分支,可以直接使用以下命令:
  1. git
  2. pull
  3. origin
  4. master
复制代码

示例场景:
假设你和团队成员共同开发一个项目,其他成员已经向远程仓库的
master
分支推送了新的代码提交,你当地的
master
分支处于旧的状态。实验上述
git
pull
origin
master
命令后,Git
会先从远程仓库
origin

master
分支获取最新的提交纪录(这一步类似实验
git
fetch
origin
master),然后自动实验将获取到的更新合并到你当地的
master
分支(相当于实验
git
merge
origin/master)。

假如盼望拉取远程仓库
origin

master
分支的更新到当地
dev
分支

先切换到
dev
分支:
  1. git
  2. checkout
  3. dev
复制代码

再将远程master分支更新合并到当地的
dev
分支
  1. git
  2. pull
  3. origin
  4. master
复制代码

假如在合并过程中出现辩论,Git
会提示你解决这些辩论。

检察辩论文件
  1. git
  2. status
复制代码

需要手动编辑辩论的文件,解决辩论后,使用以下命令标记辩论已解决:
  1. git
  2. add
  3. 辩论文件git
  4. commit
  5. -m
  6. '提交阐明'
复制代码

比力差别



Git
中,你可以使用多种方式来比力差别,包括比力当地分支、远程分支以及当地和远程分支之间的差别。以下是一些常用的命令和方法:

1.
比力当地分支之间的差别



假设你有两个当地分支
branch1

branch2,你可以使用以下命令来比力它们之间的差别:
  1. git
  2. diff
  3. branch1..branch2
复制代码

或者使用
git
diff

--name-status
选项来检察文件的更改状态:
  1. git
  2. diff
  3. --name-status
  4. branch1..branch2
复制代码

2.
比力当地分支与远程分支的差别



假设你有一个当地分支
local_branch
和一个远程分支
origin/remote_branch,你可以使用以下命令来比力它们之间的差别:
  1. git
  2. diff
  3. local_branch
  4. origin/remote_branch
复制代码

3.
比力当地分支与远程分支的最新提交



假如你只想比力当地分支与远程分支的最新提交,可以使用以下命令:
  1. git
  2. diff
  3. local_branch..origin/remote_branch
复制代码

4.
比力工作目次与暂存区的差别



假如你想检察工作目次(未暂存的更改)与暂存区(已暂存的更改)之间的差别,可以使用以下命令:
  1. git
  2. diff
复制代码

它会表现哪些更改已经在工作目次中进行了,但尚未被
git
add
命令添加到暂存区。

5.
比力暂存区与最新提交的差别



假如你想检察暂存区与最新提交之间的差别,可以使用以下命令:
  1. git
  2. diff
  3. --cached
复制代码

它会表现哪些更改已经被
git
add
命令添加到暂存区,但尚未提交到版本库。

6.
比力工作目次与最新提交的差别



假如你想检察工作目次与最新提交之间的差别,可以使用以下命令:
  1. git
  2. diff
  3. HEAD
复制代码

它会表现哪些更改已经在工作目次中进行了,但尚未被
git
add
命令添加到暂存区,或者已经被
git
add
命令添加到暂存区但尚未提交到版本库。




7.
使用
git
log
检察提交汗青和差别



你可以使用
git
log
命令来检察提交汗青,并使用
--oneline、--graph
等选项来美化输出。例如:
  1. git
  2. log
  3. --oneline
  4. --graph
复制代码

假如你想检察两个分支之间的提交汗青差别,可以使用以下命令:
  1. git
  2. log
  3. branch1..branch2
复制代码





问答


题目
1:创建并切换分支



题目:你当前在
master
分支上,盼望创建一个新的分支
feature-a
并切换到该分支。请写出完成此操作的
Git
命令。

答案
  1. git
  2. checkout
  3. -b
  4. feature-a
复制代码

题目
2:合并分支



题目:你当前在
feature-a
分支上,而且已经完成了全部工作。如今你盼望将
feature-a
分支的更改合并到
master
分支。请写出完成此操作的
Git
命令。

答案
  1. git
  2. checkout
  3. mastergit
  4. merge
  5. feature-a
复制代码

题目
3:解决合并辩论



题目:在合并
feature-a
分支到
master
分支时,出现了合并辩论。你如何解决这些辩论?请写出解决辩论的步骤。

答案


题目
4:拉取远程更新



题目:你当前在
dev
分支上,而且盼望拉取远程仓库
origin

master
分支的更新到当地
dev
分支。请写出完成此操作的
Git
命令。

答案
  1. git
  2. pull
  3. origin
  4. master
复制代码

题目
5:比力分支差别



题目:你有两个当地分支
branch1

branch2,盼望比力它们之间的差别。请写出完成此操作的
Git
命令。

答案
  1. git
  2. diff
  3. branch1..branch2
复制代码

题目
6:检察提交汗青



题目:你盼望检察当前分支的提交汗青,而且盼望输出简便的提交信息。请写出完成此操作的
Git
命令。

答案
  1. git
  2. log
  3. --oneline
复制代码

题目
7:撤销暂存区的更改



题目:你使用
git
add
命令将一些文件添加到暂存区,但后来决定撤销这些更改。请写出完成此操作的
Git
命令。

答案
  1. git
  2. reset
复制代码

题目
8:撤销工作目次的更改



题目:你修改了一些文件,但后来决定撤销这些更改,恢复到最新提交的状态。请写出完成此操作的
Git
命令。

答案
  1. git
  2. checkout
  3. --
  4. <文件名>
复制代码

题目
9:删除分支



题目:你已经完成了
feature-a
分支的工作,而且已经将其合并到
master
分支。如今你盼望删除
feature-a
分支。请写出完成此操作的
Git
命令。

答案
  1. git
  2. branch
  3. -d
  4. feature-a
复制代码

题目
10:推送当地分支到远程仓库



题目:你创建了一个新的当地分支
feature-b,而且盼望将其推送到远程仓库
origin。请写出完成此操作的
Git
命令。

答案
  1. git
  2. push
  3. -u
  4. origin
  5. feature-b
复制代码

题目
11:检察远程仓库信息



题目:你盼望检察当前配置的远程仓库信息。请写出完成此操作的
Git
命令。

答案
  1. git
  2. remote
  3. -v
复制代码

题目
12:拉取远程更新



题目:你盼望拉取远程仓库
origin
中的最新更新到当地当前分支。请写出完成此操作的
Git
命令。

答案
  1. git
  2. pull
  3. origin
复制代码

题目:你盼望拉取特定分支master的更新到当地当前分支。请写出完成此操作的
Git
命令。

答案:
  1. git
  2. pull
  3. origin
  4. master
复制代码

这会从远程仓库
origin

master
分支拉取更新并合并到当前分支。

题目
13:检察当前分支



题目:你盼望检察当前所在的分支。请写出完成此操作的
Git
命令。

答案
  1. git
  2. branch
复制代码

题目
14:检察文件更改状态



题目:你盼望检察当前工作目次中文件的更改状态。请写出完成此操作的
Git
命令。

答案
  1. git
  2. status
复制代码

题目
15:检察特定文件的更改汗青



题目:你盼望检察特定文件
example.txt
的更改汗青。请写出完成此操作的
Git
命令。

答案
  1. git
  2. log
  3. example.txt
复制代码

题目
16:检察特定提交的详细信息



题目:你盼望检察特定提交
abc123
的详细信息。请写出完成此操作的
Git
命令。

答案
  1. git
  2. show
  3. abc123
复制代码

题目
17:撤销最后一次提交



题目:你刚刚提交了一次更改,但后来决定撤销这次提交。请写出完成此操作的
Git
命令。

答案
  1. git
  2. reset
  3. --soft
  4. HEAD~1
复制代码

题目
18:恢复误删除的文件



题目:你误删除了一个文件
example.txt,而且盼望恢复该文件。请写出完成此操作的
Git
命令。

答案
  1. git
  2. checkout
  3. --
  4. example.txt
复制代码

题目
19:检察远程分支



题目:你盼望检察远程仓库中的全部分支。请写出完成此操作的
Git
命令。

答案
  1. git
  2. branch
  3. -r
复制代码

题目
20:重命名当地分支



题目:你盼望将当地分支
old-branch
重命名为
new-branch。请写出完成此操作的
Git
命令。

答案
  1. git
  2. branch
  3. -m
  4. old-branch
  5. new-branch
复制代码

本文参考:

史上最全
Git
图文教程(非常详细)零基础入门到精通,收藏这一篇就够了-CSDN博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4