【Git】手把手教你使用git管理代码 (上)

Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。

特点:项目越大越复杂,协同开发者越多,越能体现出 Git 的高性能和高可用性!

今天我们从头开始来使用git管理代码。

1.下载并安装Git

https://git-scm.com/downloads
根据自己的操作系统,下载对应的git安装包。
安装包下载好之后:

  1. 双击,然后一直下一步安装即可(不要修改安装路径,容易出现乱码)。

  2. 不要安装到含有中文的路径中。比如,不要安装到 “D:/软件/学习/Git”

  3. 安装完毕,绝对不可以剪切(移动)到其他文件夹。

  4. 千万不要重命名路径中的任何一个文件夹

  5. 安装完毕,鼠标在任何文件夹空白位置右键,如果出现 Git Bash Here,则表示安装成功。(或者点击“Git Bash Here” --> 输入 git --version 回车,如果看到版本号,则表示安装成功)
    在这里插入图片描述

  6. Mac用户,使用自带的终端。输入“git --version”,回车,如果看到版本号,则表示安装成功

ps:Mac用户需要额外配置一下:访达 -> 服务 -> 服务偏好设置 -> 勾选“新建位于文件夹位置的终端窗口”

2.配置用户信息

安装完 Git 之后,要做的第一件事就是设置自己的用户名和邮件地址。Git 需要使用这些基本信息,来知道你是谁。
ps:这个用户名和邮箱,最好使用你的github账号或gitee(码云)账号(如果你有账号的话),当然随便填也可以。

具体操作
  1. 任何文件夹,空白处,右键 --> Git Bash Here
  2. 依次执行下面两行命令
git config --global user.name "用户名"
git config --global user.email "邮箱"

注意:如果使用了 --global 选项,那么该命令只需要运行一次,即可永久生效。

配置之后,可以通过下面的命令来检查是否配置成功了

# 查看所有的全局配置项
git config --list --global

# 查看单个的配置项,比如查看用户名
git config user.name
git config user.email
获取帮助信息

可以使用 git help 命令,无需联网即可在浏览器中打开帮助手册,例如:

# 打开 git config 命令的帮助手册
git help config

Git的基本操作

获得git仓库的两种方式

① 将尚未进行版本控制的本地目录转换为 Git 仓库

② 从其它服务器克隆一个已存在的 Git 仓库

以上两种方式都能够在自己的电脑上得到一个可用的 Git 仓库

在现有项目中初始化项目

如果自己有一个尚未进行版本控制的项目目录,想要用 Git 来控制它,需要执行如下两个步骤:

① 在项目目录中,通过鼠标右键打开“Git Bash”

② 执行 git init 命令将当前的目录转化为 Git 仓库

# 初始化,表示使用Git管理我们的项目。这个命令只需要执行一次(注意空格)
git init
  • 执行 git init 命令之后,会在项目文件夹中生成一个隐藏的 .git 文件夹
  • .git 文件夹里面保存着当前项目文件的更改记录。所以这个文件夹不能删除
  • 对于一个项目来说,git init 只需要执行一次
  • 切记,不要项目套项目。
查看日志

查看日志的命令:

git log

在这里插入图片描述

三个区域
  • 工作区
    • 工作区,指的是使用Git管理后的文件,这些文件显示在磁盘上,供我们使用或修改的区域。所以,粗略的说,项目文件夹就是工作区。
  • 暂存区
    • 执行 git add .之后,文件由工作区,添加到了暂存区。 暂存区保存了下次将提交的文件列表信息。
  • 本地仓库
    • 执行 git commit -m ‘提交说明’ 之后,代码会被提交到仓库区。仓库区是 Git 中最重要的部分,代码只有提交到仓库,才会形成一次历史记录,即才会形成一个版本。
查看文件状态
# 查看文件的状态
git status

# 查看简略版信息
git status -s
  • 已提交(nothing to commit)
    • 表示没有什么东西可以提交了;即所有的内容都已经提交过了
    • 有的文档也把这个状态叫做 未修改,意思是自上次提交过后,代码还没有修改过
  • 未跟踪(新增的文件)
  • 已暂存(新增的文件,添加到暂存区之后的状态)
  • 已修改(文件曾经被Git记录过了,然后在工作区对他进行了修改)
  • 初学者,只需要区分:代码是否都被提交到仓库了
添加提交命令
添加文件到暂存区
# 添加当前目录的所有文件到暂存区,包括子目录
git add .

默认空文件夹,是不能添加,不能提交的

提交文件到仓库
# 提交暂存区到仓库区
git commit -m [message]
分支

分支就是当前项目的一个副本(可以理解为把当前项目复制了一份,可以这样理解,但是要知道内部实现并非如此)。

初始化之后,默认是在master分支上进行操作的,master分支也叫做主分支。

实际开发中,正规的公司,都不允许直接在master分支上开发。需要创建分支,在分支上开发,最后将代码合并回master。

分支常用命令
# 查看所有本地分支
git branch

# 创建新分支
git branch 分支名
# 比如,创建一个叫做login的分支
git branch login

# 切换分支
git checkout 分支名
# 比如,切换到login分支
git checkout login
# 比如,切换到master分支
git checkout master

# 创建并直接切换分支
git checkout -b 分支名

切换分支之前,必须把当前分支的代码全部提交到仓库。

合并分支

特点:一个分支包含另一个分支的全部提交记录。

如果需要把dev分支的代码合并到master分支

  • 切换到master

  • 执行 git merge add ,即可把add分支的代码合并到master

  • 合并之后,add和master分支的代码就回一样了。

合并提示
  • 两个分支,比如是master和dev,特点是都有新的提交
  • 也就是说,一个分支不包括另一个分支的全部提交记录
  • 这种模式的合并,有可能会有冲突
  • 合并方法,和前面一样
    • 假设把dev的代码合并到master分支,切换到master git checkout master
    • 执行 git merge dev ,表示将dev分支的代码合并到当前(master)分支
    • 然后就会出现如下两个画面中的一种
      • 画面一:两个分支修改的代码不在同一个文件的同一行代码,出现下面的画面。
        在这里插入图片描述
        画面二:两个分支修改了同一个文件的同一行代码,出现下面的画面。
        在这里插入图片描述
        出现上述画面一,表示已经合并完成了,但是需要提交一次;

出现的框是让我们输入提交说明;

需要执行下面的操作:

  • 按 i ,进入 “插入” 模式,就可以对画面中的文字进行修改了(直接输入也行)
  • 按 “上下左右” 键,调整光标的位置,可以删除里面的内容,写自己的提交说明
  • 上述画面中的 # Please enter… 表示注释,可以不用理会
  • 按 Esc 键,退出 “插入” 模式
  • 直接输入 “:wq”,退出这个画面,从而完成合并。(一定是英文的冒号)

出现上述画面二,表示正在合并中,但是遇到冲突了;

需要在代码中解决掉冲突,然后保存代码;

最后,需要提交一次;

具体做法:

  • 打开有冲突的文件
  • 去掉分割线,保存代码,表示解决了冲突
  • 保存代码,执行 git add . 和 git commit -m ‘提交说明’ 从而完成这个合并。
远程仓库
注册码云或github账号

码云和github都提供仓库的托管服务。

区别是码云是国内的服务器,打开速度较快;github是国外的服务器,打开速度不能保证。

码云:https://gitee.com/

github:https://github.com/

自行去这两个网站注册账号,最好使用相同的邮箱 分别到码云和github上注册账号。

配置码云或github的SSH秘钥

我们向码云或github网站推送代码的时候,最好使用SSH的方案,这个方案需要提前配置好秘钥。下面是具体的配置方法。

任何文件夹位置,空白处右键,选择右键菜单中的 “Git Bash Here”,执行下面的命令,可以生成SSH秘钥(包含一个公钥一个私钥)

ssh-keygen -t rsa -C "你的邮箱地址"
# 比如
ssh-keygen -t rsa -C "tangfengpo@163.com"
# 执行完这个命令之后,后面有一些询问,我们直接一路回车即可

最后生成的秘钥在:

Windows:
C:\Users\用户名\.ssh

mac:
你的用户名那个文件夹中。 按shift+Commend+.  可以显示隐藏文件,然后就可以看到 .ssh文件夹了

找到 .ssh/id_rsa.pub,用vscode打开,复制里面全部的内容,配置到远程仓库,做法如下:

  • GitHub右上角的三角号
  • Settings
  • 左侧有 SSH and GPG keys
  • 在显示的界面中,点击右上角的 New SSH key,然后完成添加公钥操作
  • 码云的配置方式和Github一样。
创建远程仓库
  • 码云
    • 右上角的 “+” ,选择新建仓库
    • 填写仓库名,选择公开
    • 点击创建按钮,创建。
  • github
    • 右上角的 “+” ,选择 “New repository”
    • 填写仓库名称
    • 点击创建按钮,创建。
推送代码到远程【首次】
  • 进入本地项目文件夹,右键 --> Git Bash Here,打开终端窗口。
  • 远程仓库地址有两个(https、ssh地址),一定要选择ssh地址。
  • 添加远程仓库地址(git remote add 远程仓库地址别名 完整的远程仓库SSH地址)
  • 首次推送代码到远程仓库(git push -u origin master)

只能把本地仓库的代码推送到远程仓库;不能把工作区的、暂存区的代码推到远程。
确保你的本地仓库有内容,别推送空的本地仓库。注意是本地仓库,不是工作区。

首次使用SSH,会出现如下画面,输入 “yes”,回车即可。后面就不会再有了。
在这里插入图片描述

再次及后续推送
  • 工作区编写代码
  • 执行 add 命令,将代码添加到暂存区
  • 执行 commit 命令,将代码提交到本地仓库。(因为只有本地仓库的代码才能推送到远程)
  • 执行 git push 命令,将这次改动推送到远程仓库。

常见的问题

  • 执行完“git remote add origin ssh地址”报错:fatal:remote origin already exists.
    • 叫做 origin 的远程地址以及存在了。不能再使用这个名字了。
    • 执行 git remote -v 查看所有的远程地址。
    • 可以选择性的 删除 远程地址。执行 git remote remove 别名,比如 git remote remove origin
  • 首次推送的时候,提示输入账号密码
    • 因为添加远程地址的时候,填错了,填成了 https 地址了。应该换成 ssh 地址。
    • 可以选择改过来,也可以使用https地址。下次做项目,再使用ssh地址也可以。

git remote add 那里,地址复制错了,能改吗?

# 查看所有可用的源(可用的远程地址)
git remote -v
# 删除一个源
git remote remove 远程仓库地址别名
# 然后重新添加新的地址
git remote add 远程仓库地址别名 SSH地址

推送总是不成功?

  1. 检查一下SSH秘钥有没有配置好
  2. 实在不行,重新创建一个仓库试试,从头再来。

千万不要把两个本地项目(仓库)推送到一个远程仓库,会出现代码混乱和覆盖的。

<think>好的,用户想了解Git提交代码的具体步骤和命令。首先我需要整理一下用户提供的引用内容,看看各个步骤是怎么描述的。引用3和引用5比较详细,可能可以综合一下。 用户提供的引用3提到创建分支、提交到本地缓存区、commit、push,还有合并到主分支的流程。引用5则是更简略的四步:修改代码git add、git commit、git push。引用4还提到了使用stash和rebase来保持代码同步,这可能是在团队协作中的好习惯。 用户的问题需要详细步骤和命令,所以应该分步骤说明。可能的结构是:准备阶段(切换分支、拉取最新代码)、提交代码(add、commit)、推送到远程、合并到主分支的流程。另外需要注意是否需要处理冲突,以及如何保持分支与主分支同步。 还要考虑是否需要包括创建分支的步骤,因为用户可能从新功能开发开始。引用3里提到了创建分支、切换分支,然后提交。所以步骤可能需要分为几个部分:创建并切换分支、提交代码、推送代码、合并到主分支。 另外,用户可能对每个命令的具体作用不太清楚,可以适当解释每个步骤的目的。比如git add的作用是将修改加入暂存区,commit是提交到本地仓库,push是推送到远程。 还需要注意是否有常见问题,比如首次推送时需要git push --set-upstream,或者处理冲突的方法。不过用户的问题主要是步骤,可能不需要深入问题解决,但可以简要提及。 可能还需要参考引用4中的好习惯,比如在提交前拉取最新代码使用rebase来保持历史整洁。这部分可以作为最佳实践补充。 综合以上内容,步骤大致分为: 1. 准备分支(创建并切换) 2. 代码提交(add、commit) 3. 推送至远程仓库 4. 合并到主分支(pull request或merge) 5. 同步主分支到本地(pull) 6. 可选的最佳实践(stash、rebase) 需要检查是否有遗漏的步骤,比如处理冲突,但可能在详细步骤中提及。同时,每个步骤给出对应的命令和解释,确保用户能按步骤操作。最后,生成相关问题,如如何处理冲突、优化提交历史等。</think>以下是Git提交代码的详细步骤及命令说明,包含基础流程和协作规范: --- ### 一、基础提交流程 #### 1. 创建并切换分支(适用于新功能开发) ```bash git branch feature-xxx # 创建分支 git checkout feature-xxx # 切换分支(或简写 git switch feature-xxx) ``` #### 2. 提交代码到本地仓库 ```bash git add . # 将所有修改添加到暂存区(或指定文件 git add <文件名>) git commit -m "功能描述" # 提交到本地仓库,需填写清晰的注释[^5] ``` #### 3. 推送代码到远程仓库 ```bash git push origin feature-xxx # 首次推送需添加参数:git push --set-upstream origin feature-xxx[^3] ``` --- ### 二、协作规范流程(推荐) #### 1. 同步主分支最新代码 ```bash git checkout master # 切换到主分支 git pull origin master # 拉取远程主分支最新代码[^4] ``` #### 2. 变基合并(保持提交历史整洁) ```bash git checkout feature-xxx # 切回开发分支 git rebase master # 将主分支最新代码合并到当前分支[^4] ``` #### 3. 处理冲突(若有) - 手动解决冲突文件 - 标记冲突已解决: ```bash git add <冲突文件> git rebase --continue ``` #### 4. 强制推送变基后的分支 ```bash git push origin feature-xxx -f # 仅适用于私有分支[^4] ``` --- ### 三、合并到主分支 1. 通过Git平台(如GitHub/GitLab)发起 **Pull Request/Merge Request** 2. 代码审核通过后,管理员执行合并操作[^3] --- ### 四、撤回操作 | 场景 | 命令 | |-----------------------|----------------------------------------------------------------------| | 撤回未push的commit | `git reset --soft HEAD~1`(保留修改)或 `git reset --hard HEAD~1`(丢弃修改)[^4] | | 撤回已push的commit | `git revert <commit-id>` 生成反向提交,再推送[^4] | --- ### 最佳实践 1. 提交前使用 `git diff` 检查修改内容[^4] 2. 频繁使用 `git stash` 暂存未完成的工作 3. 保持提交信息规范(如`feat: 新增登录功能` `fix: 修复支付bug`) ---
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值