关于GIT配置安装及使用

简介: 关于GIT配置安装及使用

1-git安装及公钥配置
Windows

https://git-scm.com/downloads下载,安装使用,一直下一步即可。
MacOS

在系统的终端中直接输入:git --version 命令,如果没有安装Git的话会提示安装,按照提示一步一步安装即可。
Linux

一般常见发行版的软件仓库中都有Git软件,可以直接安装。例如debian/ubuntu:sudo apt-get install git
生成密钥
桌面右击打开git bash
41f720a3308e4d0bb6c81a6782c580f9.png
输入命令

$ ssh-keygen -t rsa -C "个人邮箱地址"

按3个回车,密码为空。

最后在C:\Users{windows用户名}.ssh目录下得到了两个文件:id_rsa和id_rsa.pub
e7ab01a1d45e45bbbac8ef93fc60dc12.png
添加公钥

打开id_rsa.pub将其中内容复制

2468c7dec2474d1c9642da1d03d104df.png

打开浏览器访问https://gitcode.net/-/profile,未登录则先登录再访问

点击右上角个人头像-点击设置菜单-点击左侧SSH密钥,在密钥输入框中粘贴复制的内容,点击添加密钥按钮完成公钥的添加

0d9a21cabf2f4ad18b606a50a40d16e8.png

完成git安装和公钥配置,可以开始git clone下载代码了。

2-如何使用git
配置Git

安装完成后,还需要进行最后一步配置,在终端中输入以下命令来设置自己的姓名和邮箱,以后每一次提交都将以这个标识你的身份

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

设置git仓库能正常显示中文

$ git config --global core.quotepath false

克隆Git仓库

何为仓库?我们可以理解为一堆需要进行版本管理的文件的集合。

在文件夹下右击鼠标-选择Git Bash Here 打开Git命令行
aa28d571e6344e7988e6481e7ffd21b4.png
通过浏览器获取仓库地址,页面中点击仓库首页克隆按钮,点击通过SSH Clone项目的复制链接按钮,得到clone地址,在命令行输入 git clone 复制的ssh clone链接
2f6ba22fe1834534aaa526afe40f8b42.png

跟踪文件变更

现在我们已经克隆好一个Git仓库了。

进入仓库目录

cd c4-java-base-authentication

我们使用git status来查看一下当前仓库的工作区状态

$ git status
On branch master
Your branch is up to date with 'origin/master'.
 
nothing to commit, working tree clean

现在我们来添加点东西。

如果README.md 文件不存在,使用touch来新建一个文本文件;如果存在则不需要 touch 创建。

$ touch README.md

然后我们输入点内容进去,"hello world" 按要求修改成相应内容。

$ echo "hello world" >> README.md

这时候我们再使用git status来查看一下工作区状态

$ git status
On branch master
 
No commits yet
 
Untracked files:
  (use "git add <file>..." to include in what will be committed)
    README.md
 
nothing added to commit but untracked files present (use "git add" to track)

这时提示有一个未被跟踪的文件(untracked files) README.md,并且提示你可以使用命令git add 来跟踪它。这里的是文件路径。就是说你可以是使用git add README.md来跟踪它。

$ git add README.md
$ git status
On branch master
 
No commits yet
 
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
    new file:   README.md

我们跟踪该文件后,再查看一下工作区状态的时候,发现提示是有一个新的文件正准备被提交(commit),并且你可以使用git rm --cached 来撤销对该文件的跟踪。这样该文件的任何修改就不会被git进行版本管理了。
提交文件变更

接下来我们要提交这个文件的变更,使用git commit命令

$ git commit -m "README"

-m 表示给这个提交一个信息,可以理解成提交说明。用来说明本次提交的基本信息,例如:本次提交都干了些啥,做了什么修改等。如果说明信息很多,我们可以直接使用git commit命令,不带-m参数,这时git会打开一个设定好的本地文本编辑器,你可以在编辑器中输入更多的提交说明内容并保存。

提交(commit)可以理解成一系列文件的变更的集合。整个仓库的历史的变更就是以一个个commit为单位串联起来的。在仓库历史变更的长线上,一个个提交犹如珍珠一般镶嵌在上面。

我们提交之后,再执行git status命令,被add的这些文件就不会再在输出信息中了。我们可以理解为这些文件的变更已经被提交,不再出现在工作区了。除非你再次对这些文件进行修改以及add

$ git status
On branch master
nothing to commit, working tree clean

推送到远程仓库
git commit命令只是将更新提交到本地仓库,要实现协作开发,需要将更新推送到远程仓库,输入下列命令执行推送

$ git push origin master

如果远程仓库有更新,即本地仓库版本落后于远程仓库,则推送失败,报错如下:
8a77d3f8b58946bf874f6adaa99591da.png
需要先拉取远程仓库更新

$ git pull origin master

Git 命令行弹出合并信息编辑
ee2a0b9752084a4aab53abe0a26f7f3d.png
直接输入 :q 退出

$ :q

再执行推送命令

$ git push origin master

注意:也可以使用Git GUI实现提交和推送,Git GUI在提交时可以直观的看到哪些文件有更新,操作过程查看本目录下【README-00-通用-1-Git.md】的扩展资料 - Git GUI界面操作示意图
3-git合并父工程更新

给自己的仓库(origin)添加上游仓库(upstream)
git remote add upstream git@gitcode.net:review/c-practice/c4-java-base-authentication.git
拉取上游仓库(upstream)更新
git pull upstream master

注意:如果自己仓库(origin)有提交,则需合并上游仓库(upstream)的更新,在合并信息中输入下面命令,直接退出合并信息的编辑

:q

0c5b3bc31153463fb89ed6f0faa8f7c8.png

将代码推送到到自己的仓库origin.
git push origin master

4-git分支管理
创建/切换分支

分支是git里面又一个十分重要的概念,我们在一条历史变更上线(主分支)上提交我们的修改,也可以再多条历史变更长线(其他分支)上提交我们的修改。这就为我们并行开发提供方便。我们可以从主分支的某一个提交点上新建一个分叉(新分支),然后又新建一个分叉(另一个新分支),在两个新分支上开发不同的功能,最终又可以把两个新的分支合并到主分支上。

那么如何新建一个分支呢?十分简单,我们只需要执行一下命令

$ git branch dev

这样我们就新建好了一个新的分支dev了。使用git branch来查看分支。

    $ git branch
    dev
    *master

带*号表示当前分支仍然在master分支上,虽然我们新建一个dev分支。

如何切换到dev分支?执行以下命令:

$ git checkout dev

这样我们就切换到了dev分支上,就可以在dev分支上开发相关功能了。

上述新建分支和切换分支是两个命令,实际上我们可以使用一条命令来新建一个分支,并切换到这个分支

$ git checkout -b dev02

如何删除分支呢?
我们不能身处一个分支上,来删除这个分支。例如我要删除dev02这个分支,我就必须切换到其他分支上

$ git checkout master

然后执行git brach -d dev02命令来删除

$ git branch -d dev02

有时候提示dev02上有变更没有合并到master,不让你删除。这时你可以使用-D来强制删除。这并不是推荐做法,除非你确定不想要dev02分支的变更

$ git branch -D dev02

合并分支

我们在dev分支上做了很多开发,觉得可以了。这个时候就需要把dev分支合并到master分支上,这样dev分支上的所有的提交就都合并到master分支了。

我们先在dev分支上做一些变更

    $ git checkout dev
    $ touch config.txt
    $ echo "config" >> config.txt
    $ echo "hehe" >> README.md
    $ git add .
    $ git commit -m "添加配置文件以及修改README.md"

好了,我们在dev分支上做了一些变更(新建了config.txt文件并添加了内容,给README.md文件追加了内容)并提交了。我们使用了git add .来表示跟踪所有的文件变动(新增和修改)

切换到master分支

$ git checkout master

合并dev分支到master

$ git merge dev

这样我们就将dev上的所有变更合并到了master分支上了。

相关文章
|
28天前
|
前端开发 Java 开发工具
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
36 0
|
2月前
|
移动开发 jenkins 持续交付
jenkins配置git
通过上述步骤,您可以在 Jenkins 中成功配置 Git,从而实现自动拉取代码并进行构建和部署。这些配置不仅提高了开发效率,还保证了代码的连续集成和交付。确保每一步配置正确,以避免在实际使用中遇到问题。
116 1
|
3月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
123 2
|
3月前
|
算法 网络安全 开发工具
[Git]关联远程库的两种方法及配置
本文介绍了 git 的四种连接方式:ssh 连接、HTTPS 连接、SVN 连接和 SVN + ssh 连接,重点讲解了 HTTPS 和 ssh 连接方式的配置及注意事项。文章详细解释了 HTTPS 连接的身份验证过程、常见问题及解决方案,以及 ssh 连接的公钥和私钥的创建、配置方法。此外,还介绍了如何在同一台电脑上连接多个 gitee 账号的方法。
316 0
[Git]关联远程库的两种方法及配置
|
3月前
|
Linux 网络安全 开发工具
IDEA如何配置git和github
【11月更文挑战第14天】本指南详细介绍了如何在 IntelliJ IDEA 中配置 Git 和 GitHub,包括检查和设置 Git 路径、测试配置,以及通过 SSH 或 HTTPS 方式配置 GitHub 仓库的具体步骤。完成配置后,用户可在 IDEA 中轻松进行版本控制操作。
455 0
|
4月前
|
缓存 网络安全 开发工具
全面掌握 Git 和 Gitee:从安装到上传的完整指南
本文档介绍了如何安装和配置Git,以及如何与Gitee进行连接。首先从官网下载Git并安装,接着配置用户名和邮箱,生成SSH密钥并将其添加到Gitee账户,完成无密码登录的设置。文档还提供了基本的命令使用指南,包括文件操作、Git命令和gitee代码上传流程,最后讲解了提交信息的规范格式和回滚操作的方法。
536 1
|
4月前
|
开发工具 git
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
60 1
|
5月前
|
网络协议 开发工具 网络虚拟化
SourceTree git 配置代理
SourceTree git 配置代理
150 1
|
4月前
|
编译器 网络安全 开发工具
git学习五:切换本地仓库出现的问题。修改git配置初始化。error:src refspec master does not match any。错误总结,送上几个案例
这篇文章是关于Git使用中遇到的一些问题及其解决方案的总结,包括切换本地仓库时的问题、修改Git初始化配置、以及解决"error: src refspec master does not match any"错误等。
134 0
|
5月前
|
存储 Shell 开发工具
内核维护者手册 - 配置Git【ChatGPT】
内核维护者手册 - 配置Git【ChatGPT】

相关实验场景

更多