git版本管理入门(本地/远程仓库,常用命令)

news/2024/10/31 1:22:57/

目录

git简介

安装git

配置SSH key

 Linux环境下需要命令生成ssh key

本地git管理

多人协作流程

追加

重新提交

git命令

git commit本地和git push远程

git stash和git stash pop暂存

git status查看修改哪些了文件​

git diff 查看修改前后的差异

git log查看提交记录

git add添加到缓存区等待提交

git commit -m 信息:提交缓存区到仓库中

git pull --rebase更新合并​

分支

git branch查看分支

git branch 分支名称:创建分支

git checkout -b 分支名称:创建并切换到该分支

git checkout 分支名称:切换分支

git merge 来源分支 合并分支

git branch -d 分支名称 删除分支

vim常见命令

enter(让其接着输出)

q退出(无法输入时或者需要中断时)

ls查看目录

快捷键

vscode代码格式化Shift+Alt+F

git bash复制粘贴Ctrl/Shift+ins(v)

相关工具

yarn(js包管理)

日常命令集成

Linux系统WSL2

rm -r删除

Fork 提高git 效率

git简介

  • Workspace:工作区
  • Index:暂存区,当执行 git add 的命令后,工作区的文件就会被移入暂存区, stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中
  • Repository:本地仓库,位于自己的电脑上,通过 git commit 提交暂存区的内容,会进入本地仓库。Remote:远程仓库,用来托管代码的服务器,远程仓库的内容能够被分布在多个地点的处于协作关系的本地仓库修改,本地仓库修改完代码后通过 git push 命令同步代码到远程仓库。

安装git

  • 下载 Git 下载地址 ,选择自己系统对应的版本下载即可。

  • 在你的电脑上生成 ssh 秘钥,打开终端,执行 ssh-keygen -t rsa -C "你公司内部邮箱地址",如果执行成功,切换到 ~/.ssh 目录下,此时目录应该如下所示。复制 id_rsa.pub 的内容。

  • 这里以 Github 为例,如下图所示,进入 settings -> SSH and GPG keys 通过 cat 命令查看文件 id_rsa.pub 的内容,然后复制过来,点击 add ssh key,这一步等于说把你的公钥放到了 Github 上进行托管。

  • PowerShell
    cat .git/config
    git remote set-url origin <URL>
    #URL为下图的SSH

    ​​

  • 全局配置 Git 的用户名和邮箱

git clone…redirect: https://gitlab.../sign_in_参宿7的博客-CSDN博客

PowerShell
git config --global user.name "Your Name"
git config --global user.email "youremail@domain.com"

git config --global core.autocrlf false
#使其在检出和提交文件时不会自动更改行尾符。
#在使用Windows vs时,可能会自动更改换行符导致格式错误或其他问题。
#通过将core.autocrlf设置为false,Git将禁止执行此种自动转换并保留文件中已有的行尾样式。
#完全禁止 Git 在检查文件格式时自动转换换行符。如果发现文件中存在混合换行符的情况,Git 将会给出警告信息。

 ​​

​​

git config --global core.safecrlf true

#通常情况下这个设置建议开启,否则diff 不同版本时,会记录不同换行符

cat ~/.gitconfig

​​

配置SSH key

使用你本地的私钥和远程仓库的公钥进行验证是否是一对秘钥

win环境下SSH key 配置_windows ssh key_nandao158的博客-CSDN博客

 Linux环境下需要命令生成ssh key

  • 生成key

PowerShell
ssh-keygen
#键入enter,默认选项

  • 复制key到gitlab的ssh key中

本地git管理

  1. git init 初始化库
  2. git add .
  3. git commit -m “解释”(如果直接git commit还会进去到vim,qa退出)
  4. git diff可查看与上个版本的不同(不过建议学会用fork)

多人协作流程

  1. git log查看当前仓库的版本号(第一个是当前仓库的版本号,第二个是最近提交的版本号)
  2. 根据版本号是否一致,来看是否要git pull --rebase(拉取最新代码)
  3. 完成需求
  4. git stash(藏匿)
  5. git pull --rebase(拉取最新代码)
  6. git add .  将所有文件添加到缓存区等待提交
  7. git stash pop后解决冲突
  8. 在项目路径输入wsl(从开发环境vs code中的git bash命令中切换到wsl)​
  9. (当代码成功入库后,相关功能完善可以反复使用的同一个JIRA-ID
  10. git commit -m “xxx”,xxx例如 类型(范围): [<JIRA-ID>] <英文总结,首字母大写, no_3rd_skip 代表突破500行代码或10个文件更改的限制建议每改一个整块逻辑,就提交
  11. arc diff 代码审核,进入vim编辑模式,(arcanist代码提交审核工具)

PowerShell
#summary:中文,注意详细,空格增加可读性;
Summary:统一 增加/删除 按钮
Test Plan:self test
Reviewers:xxx,xx
Subscribers:

注意英文还是中文输入.(例如“,”,“.”),建议直接复制上次正确的格式​

最后会生成一个Differential Revision的网址URI,可以看到区别

​​

追加

如果review审核不通过,根据需求修改后进行追加和更新,

PowerShell
git add .
#将首次提交git commit -m “xxx”的-m改成--amend追加
git commit  --amend xx
#为上次arc diff中生成URI中的id,进行更新
arc diff --update   D3xxx4

重新提交

如果不想要在上次提交上追加,可以直接删除,重新提交

arc land(reviewer审核通过后)首字母大写,例如:feat(auto): [ID] Add new function

PowerShell
#建议直接复制,:[]之间有个空格
git commit -m "feat(ui): [ID] Add sub button"

每个提交只能进行一次arc land,否则会报错​

git命令

git commit本地git push远程

Git commit是将更改保存到本地代码库中的命令,

Git push是将更改从本地代码库同步到远程代码库的命令。

git stash和git stash pop暂存

stash栈(先进后出)

可以在另一个时间点上利用这些更改。 执行完 git stash 命令后,在执行 git pull 完成后,可以通过执行git stash pop 来恢复之前存档的改动。

保存的时间是没有限制的,只要不手动删除 stash 列表中的储藏内容,就会一直保存下去。

使用 git stash 时,会在本地存储库中创建一个储藏列表(stash list)。

每个储藏条目都包含一组更改集(change set):暂存区改动和工作目录改动。

默认情况下,Git 会为每个储藏条目自动生成一个唯一的名字,根据时间戳创建。

自定义名git stash<stash name> 

查看git stash list,

恢复git stash apply,最近的一个

恢复git stash apply <stash name>,

删除git stash drop and git stash drop <stash name> 等命令。

清空Git栈git stash clear

git status查看修改哪些了文件

Untracked files指的是在git版本控制下,某个文件或目录已经存在于那个被git管理的工作目录中,但是还没有加入到任何一个git repository中。

在执行git status命令时,这些文件会显示为“Untracked files”。

这意味着这些文件不受版本控制,如果需要对它们进行追踪和版本控制,则需要先将其添加到git repository中,即使用git add命令。

git diff 查看修改前后的差异

按enter可以继续查看差异

git diff命令用于比较两个不同的代码版本之间的差异,

它可以用来比较

工作目录和暂存区之间的差异、

暂存区和最新提交之间的差异、

本地分支之间的差异等。

git diff比较工作目录和最新提交之间的差异。在这种情况下,命令将显示所有未添加到暂存区(Untracked files)的更改,即尚未提交的更改。

例如,可以通过以下命令比较工作目录中的文件file.txt与最新提交之间的差异:

Plaintext
git diff HEAD file.txt

如果要比较暂存区中的更改与最新提交之间的差异,可以使用以下命令:

Plaintext
git diff --cached

还可以将git diff命令与其他命令一起使用,例如git diff branch1..branch2用于比较两个分支之间的差异。

​​

git log查看提交记录

按enter可以接着看下调

​​

commit +<hash值>

​​

git add添加到缓存区等待提交

git add . 将所有当前工作目录中的新文件和被更改过的文件添加到 Git 仓库的缓存区(Index)以备提交。

. 表示要添加所有修改的文件。如果只需要添加特定的文件,则可以用文件名来代替点 .。

git commit -m 信息:提交缓存区到仓库中

git commit -m "add doc"

这是 Git 中的一条命令,作用是将暂存区中的文件提交到版本库中。其中 -m 表示后面可以输入一段提交信息,用于描述本次提交的内容。

比如 git commit -m "add doc" 就表示将该次提交命名为“add doc”,提交信息用于说明本次提交添加了文档内容。​

git pull --rebase更新合并

建议在运行此命令之前,应该首先备份代码或创建一个新的分支来进行实验和测试。

分支

(1)主分支(master):第一次向 git 仓库中提交更新记录时自动产生的一个分支。

(2)开发分支(develop):作为开发的分支,基于 master 分支创建。

(3)功能分支(feature):作为开发具体功能的分支,基于开发分支创建

git branch查看分支

​​

git branch 分支名称:创建分支

git checkout -b 分支名称:创建并切换到该分支

​​

git checkout 分支名称:切换分支

​​

如果在切换分支前有未提交的修改,Git 会提示你这些修改可能会丢失,此时你可以保留修改、提交它们,也可以放弃它们并从其他分支 checkout 后的某个版本开始:

​​

Plaintext
git checkout feature-branch     # 如果放弃修改和暂存区内容
git stash                       # 保存修改(可选)
git checkout feature-branch     # 切换分支
git stash pop                   # 还原修改/暂存区内容

​​

​​

​​

​​

​​

​​

git merge 来源分支 合并分支

(必须在master分支上才能合并develop分支)

git branch -d 分支名称 删除分支

(分支被合并后才允许删除)(-D 强制删除)

  • 恢复单个文件到指定版本:git checkout HEAD~ my-file.js
  • 切换远程分支到本地:git checkout --track origin/remote-branch-name
  • 将修改全部或部分(可选)撤销:git checkout -- path/to/my/file

vim常见命令

enter(让其接着输出)

q退出(无法输入时或者需要中断时)

ls查看目录

​​

快捷键

vscode代码格式化Shift+Alt+F

windows

git bash复制粘贴Ctrl/Shift+ins(v)

git bash鼠标右击后就有复制和粘贴选项,

Ctrl+ins 复制
Shift+ins 粘贴
(只不过将v换成了insert)
git教程

git 简明指南

Git 基本操作 | 菜鸟教程

Git不要只会pull和push,试试这5条提高效率的命令 - 掘金

我在工作中是如何使用 git 的 - 掘金

相关工具

yarn(js包管理)

日常命令集成

Windows TerminalMicrosoft Apps

用于 windows 日常命令的执行,以及各种 shell 的集成(cmd、powershell、git shell)

Linux系统WSL2

rm -r删除

​​

删除目录及其包含的文件和子目录。其中 -r 表示要递归删除目录中所有内容,包括子目录。

需要注意的是该命令会立即删除目录及其全部内容,并且不会进行确认提示。

Fork 提高git 效率

Fork - a fast and friendly git client for Mac and Windows  

git的GUI界面:最好用的GIT版本管理工具 - Fork使用说明 - 知乎

F5刷新

​​

远程仓库clone,repository本地仓库


http://www.ppmy.cn/news/460668.html

相关文章

HDU 4960 Another OCD Patient

解题报告&#xff1a; 维护前缀和以及后缀和&#xff0c;相等则记录为断点 dp[ i ]表示断点 i 中间全部合并&#xff0c;两侧最优合并的最小代价 #include <algorithm> #include <iostream> #include <iomanip> #include <cstring> #include <cli…

【DP】 HDOJ 4960 Another OCD Patient

从两端往中间合并。。。合并过程中的数必然向数小的一方先合并。。。然后我们就可以这样先预处理出关节点。。。然后再关节点上一维DP即可。。。。 #include <iostream> #include <queue> #include <stack> #include <map> #include <set&g…

hdu 4960 Another OCD Patient(动态规划)

题目&#xff1a; Another OCD Patient Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 1320 Accepted Submission(s): 459 Problem Description Xiaoji is an OCD (obsessive-compulsive disorder) patie…

[dp]HDOJ4960 Another OCD Patient

题意: 给一个n, 第二行给n堆的价值v[i], 第三行给a[i]. a[i]表示把i堆合在一起需要的花费. 求把n堆变成类似回文的 需要的最小花费. 思路: ①记忆化搜索 比较好理解... dp[l][r] 记录l到r的最小花费 枚举对称轴 维护每次l到r之间对称 dp[l][r]min(dp[l][r], a[cur-l]a[r-i]df…

HDU 4960 Another OCD Patient 简单DP

思路&#xff1a; 因为是对称的&#xff0c;所以如果两段是对称的&#xff0c;那么一段的前缀和一定等于另一段的后缀和。根据这个性质&#xff0c;我们可以预处理出这个数列的对称点对。然后最后一个对称段是从哪里开始的&#xff0c;做n^2的DP就可以了。 代码&#xff1a; 1 …

Sicily 4960 Identity Checker

直接用栈模拟&#xff0c;“-”顺序别弄错&#xff0c;不然会WA... #include<iostream> #include<string> #include<cmath> #include<stack> using namespace std; int main() {int n;while (cin >> n && n) {stack<double> stk;s…

hdu4960 区间dp

由于可以预处理出每个左端点对应的右端点&#xff0c;所以并不需要开二维&#xff0c;复杂度应该是介于n和n^2之间。 #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #define REP(i,a,b) for(in…

hdu 4960 数列合并

http://acm.hdu.edu.cn/showproblem.php?pid4960 给定一个长度为n的序列&#xff0c;然后再给出n个数bi,表示合成i个数的代价。每次可以将连续的子序列和成一个数&#xff0c;即为序列中各个项的和。要求将给定长度n的序列变成一个回文串&#xff0c;一个数字只能被合成一次。…