IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git实践记录 -> 正文阅读

[开发工具]Git实践记录

首次提交代码

在提交代码前注意自己的本地分支是否已经更新到最新版本查看所在分支是否正确,如果不处在对应分支则需要使用git checkout 分支名 切换到对应分支。

通过以下命令查看当前所在分支和工作区、暂存区中的变化

git status

git status会显示当前所处的本地分支和对应的远程分支。本地分支显示的分支名称是当时使用git branch 分支名 命令创建本地分支时所自定义的名称。该名称一般与对应的远程分支名相同,以便联系起来。

创建本地分支还可以使用

git checkout -b 分支名

命令。该命令会在创建完分支后自动切换到该分支上。

此外通过git branch -a命令可以更直观的看到当前所在分支。

如果本地分支不为最新版本,通过以下命令进行同步

git pull

如果提示error:您对下列文件的本地修改将被合并操作覆盖:文件名。则说明指定的文件与远端分支上的文件存在差异

此时需要回退文件版本(注意在文件回退前做好备份!!!),存在以下几种情况:

1.文件在工作区已修改,但并未提交到暂存区(即并没有add)

撤销单个文件在工作区的修改,使用下面命令:

git checkout 文件名

若想撤销工作区中所有文件的修改,使用下面命令:

git checkout?.

注意:git chekcout 是让文件回到上一次该文件git?commit或git add时的状态。也就是说如果该文件是第一个版本在此之前没有其它版本则执行该命令会报错。

2.文件工作区修改了之后,并提交到了暂存区(即已经add),但未commit

此时文件在暂存区但未commit到本地仓库中,使用如下命令来放弃该文件的暂存:

git reset HEAD 文件名

3.文件工作区修改了之后,并提交到了暂存区(即已经add),同时已经commit

使用如下命令将已经commit的文件回到暂存区状态(即commit前):

git reset --soft HEAD^

HEAD为默认参数可以省略。

使用如下命令将已经commit的文件回到工作区状态(即add前):

git reset

此时的情况就和第一种情况相同了,所以需要使用git checkout 文件名 命令来将文件回退到上次的版本。

如果你只想取消指定文件的commit则只需使用git reset HEAD 文件名 命令即可

回退完成后可以通过git status命令再次检查,待检查无误后通过git pull命令进行同步。

待本地同步完成后就可以进行代码的提交了:

首先我们通过以下命令将需要提交的文件或目录放入暂存区(注意在add前最好git pull同步一下,以保证本地代码为最新版本)

git add 文件名/目录名?文件名/目录名?文件名/目录名 。。。

可以同时add多个文件或目录,多个文件或目录间通过空格隔开。

如果要提交暂存区内的所有文件或目录则使用git add *命令

再次运行git status命令就可以看到工作区中发生的变化了。

提交到工作区后通过以下命令将代码提交到本地仓库(在commit前最好先git log一下查看当前所在分支状态)

git commit

运行该命令后会出现一个commit模板编辑区域,需要在其中输入提交的信息(该信息会在代码管理平台,如gerrit中显示出来。所以一般是代码的改动介绍信息)

信息输入完毕后,可按照编辑区域底部的提示信息退出编辑。

commit完成后可以通过git log命令查看刚刚commit的信息。

然后通过

git remote -v

查看当前项目所属的代码托管平台和该项目在平台上的ssh地址

然后使用

git push 平台名称 提交地址

将代码提交到远程仓库

提交地址的格式为:

HEAD:refs/for/所在分支名称

至此整个代码的提交完成。

更新已提交的代码(前提是代码未入库,也就是未merged)

此部分的前提是你已经提交了一笔代码,并且想更新对应代码。用git log命令查看最新的一笔提交是不是你要更新的那一笔,如果不是则用git commit提交一笔新的

比如本地开发代码已提交,提交后发现这次提交的代码有问题或者漏提交了一些文件,又或是只想修改之前的commit注释。

在更新代码前注意当前所在分支是否和要更新的代码处在同一条分支上,如果不处在对应分支则需要使用git checkout 分支名 切换到对应分支。

代码的add流程和push流程与之前无异(见上面,注意在add前最好git pull同步一下,以保证本地代码为最新版本

关键区别在commit环节,命令不再使用git commit命令,而是使用如下命令:

git commit --amend

在该命令执行完后同样会出现一个commit模板编辑区域,需要在其中修改之前输入提交的信息,你也可以选择不修改。

在编辑完提交信息后就可以正常push了。

如果代码已经入库,那么再想更新之前的代码就只能重新使用git commit提交一笔新的代码。

此时不能再使用git commit --amend命令修改因为代码已经入库了,这笔代码的commit记录已经消失了

同步代码

首先进入需要同步代码目录中(有.git目录)

通过以下命令查看本地仓库和远程仓库的所有分支以及当前所在分支

git branch -av

选择需要上述命令中列出的需要跟踪的远程分支,然后通过以下命令创建本地跟踪分支并切换到该分支

git checkout -b 本地跟踪分支名 远程分支地址

其中本地跟踪分支名是一个自定义的名称,一般与被跟踪的远程分支名一致

创建完成后会自动切换到该本地跟踪分支上,此时通过git pull命令就可以实现代码同步了

更新整仓代码(repo+git)

首先需要拉取完成整仓代码,一般使用repo init和repo sync命令

拉取完成后在后续阶段可能需要更新整仓代码,这时只需再执行一遍拉取代码时的repo sync命令即可完成更新

但是本地代码和远程代码有冲突的部分是无法完成更新的。这时分两种情况处理:

1、冲突代码并非你本人更新的

首先切换到产生冲突的目录中,然后通过git checkout .命令来检出冲突目录下的所有文件

2、冲突代码为你本人更新的

首先切换到产生冲突的目录中,然后使用如下命令将工作区的改动备份到git栈中:

git stash

执行完成后工作区内容会恢复到仓库head最后一次提交的内容

然后使用git pull命令更新代码

更新完成后使用如下命令将之前备份的工作区改动合并到更新后的代码中:

git stash pop

这个过程是自动合并的。如果成功,则自动此备份会从git栈中删除。

如果有冲突,则你需要手动解决冲突。然后用git stash drop命令手动将该备份从git栈中删除

上述步骤完成后需要重复执行repo sync命令来进行更新

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-11-05 00:46:29  更:2022-11-05 00:49:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:54:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码