git下载git下载代码到本地命令

# 前言

不知道是不是洁癖。我更喜欢隔三差五重新安装系统。每次重新安装系统的问题是git相关配置必须重新配置。所以写一篇文章来记录配置git 工作中经常使用的全过程和命令

本文所涉及的操作均在arch-linux其他系统的操作大致相同。喜欢踩坑的朋友也可以访问以下链接安装 [arch-wsl](https://github.com/yuk7/Archwsl) 。 后续准备如何开篇?windows下配置 wsl(windows sub linux) 的使用(maybe)

此外,本文不涉及`git`相关内容的原则,关于这篇文章你可以直接搜索相关文章,很多文章会告诉你`git`如何工作

## git的基础配置

在使用每个工具之前,工具的基本配置需要根据个人使用习惯进行。这里列出了一些基本配置。在命令行中输入以下命令一次创建配置文件 ~/.giticonfig

# 配置用户名  git config --global user.name 你的英文名  # 配置邮箱  git config --global user.email 你的邮箱  # 配置git默认行为,默认是Matching,此行为会push所有分支,simple只会push当前分支  git config --global push.default simple  # 如果提交的文件名是中文名,就会出现乱码问题  git config --global core.quotepath false  # 配置commit打开哪种编辑器填写 commit 信息,配置在这里 vscode  git config --global core.editor "code --wait" 

## 配置alias

配置别名 (alias) 简单来说,就是配置一个更短的命令来代替git 命令。例如可以 git status 命名为 gst,当键入gst 就代表git status。

# 下列命令写入 .bashrc 文件。  # 使用 zsh 的 还需在 .zshrc 添加以下命令。  # 保存后 source 修改的文件  alias ga="git add"  alias gst="git status"  alias gc="git commit"  alias gp="git push"  alias gco="git checkout"

## 远程仓库配置

以下配置以 github 例如,其他仓库可以查看相应的配置文件进行配置。在配置远程仓库之前,检查系统 ~ 是否生成了根目录 .ssh 目录文件。如果没有,请使用命令创建。

# linux 没有系统提示 ssh-keygen 命令的话  # 自行google 查看如何下载 openssh  # windows 在 git bash 可以在里面操作  ssh-keygen -t ed25519 -C "your_email@example.com"  # 复制内容到SSH Keys 配置在里面  cat ~/.ssh/id_ed25519.pub

## 最基本的命令

#### 1. git add

在临存区添加工作区文件

# 添加所有修改的内容 git add . # 添加指定内容 git add file1 file2 

#### 2. git rm

添加到临时存储区域的操作必须有可逆转的命令。git rm 返回工作区临时存储区的返回工作区

git rm —cached 将内容返回工作区

git rm –f 文件直接删除

想检查一切 git rm 使用命令: git rm –help

# 返回工作区 git rm 1.txt --cached # 删除 git rm 1.txt -r

#### 3. git status

此命令用于检查当前状态。此外,还会给出操作提示。简而言之,它通常是常见的 git status 这是一个很好的操作。(就像使用一样vim经常按 jk 一样doge)

git status

#### 4. git commit

向仓库提交临时存储区域的内容,并填写提交说明

# -m 后面直接提交信息 git commit -m "commit message" # -v 打开默认编辑器填写提交信息 git commit -v  # --amend 上一次提交(使用场景:一般两次提交,想合并成最后一次提交的信息) git commit -m  "commit message" --amend

## git 常用的操作命令

上面讲到了 git 使用中最常见的命令是 git status, git commit , git add,以下是工作过程中其他常用的命令

#### 1. git branch

分支命令,包括分支查看、删除、新增等操作

  • git branch 查看分支
  • git branch -d branch_name 删除分支
  • git branch branch_name 添加分支
  • git branch -m branch_new_name 修改当前分支名称
# 查看当地和远程仓库的分支,查看远程仓库的使用情况 -r, 检查所有使用情况 -a git branch -r  git branch -a  # 创建分支 git branch newBranch  # 创建并切换到分支 git checkout -b newBranch # 修改当前分支名称,需要先切换到当前分支,然后修改 git branch -m otherBranchName # 删除分支,删除分支可能会表明你目前的分支代码还没有merge,如仍需删除,则使用 -D git branch -D newBranch 

#### 2. git merge

有了多个分支,就会有分支合并,git merge 有三种模式:

  • –no-ff 禁止快速合并将产生新的提交
  • squash 不会有新的提交
  • fast-forward 快速合并

使用场景: 从 dev 分支切出分支 feature_1 ,当 feature_1 完成开发需要合并 dev 分支的时候

# 个人更喜欢使用`--no-ff` git checkout dev  git merge feature_1 --no-ff

#### 3. git rebase

rebase 英语的意思是 变基,重垒

和 merge功能相似,可以合并两个分支的内容 merge相比,rebase 提交的信息会更加整洁

使用场景1 : 从 dev 分支切出分支 feature_1 当需要开发新功能时 feature_1 分支去获取 dev 可以使用分支更新的最新内容 rebase

git checkout feature_1 git rebase dev 

使用场景2:当需要将多个提交整合成一个提交时。例如,在开发过程中可能会提交多个小提交,这似乎不够直观,所以你可以将所有这些提交合并成一个提交

# 通过git log 查看要合并提交的Id # 使用 -i ,那么从目标Id当前提交将合并为提交 git rebase 4e81571 -i 

不要问我两者有什么区别。如果你坚持区别,也可以列出几点:

1.merge非线性分支树,rebase生成线性分支树

2.merge按时间顺序提交后,rebase(git rebase main) 使得 被rebase分支的提交将出现在当前分支的前面

3.rebase 事实上,没有合并操作,只是提取了当前分支的修改,并在最新提交的目标分支后复制

#### 4. git pull && git push && git remote

这两个命令用于与远程仓库的交互。push将代码提交到远程仓库,pull从远程仓库拉代码。常见操作如下:

# 将分支代码提交到远程仓库 git push origin branchName # 代码从远程分支拉取 git pull origin branchName # 查看远程仓库链接 git remote -v  # 删除远程仓库链接 git remote rm  originName # 添加远程仓库地址(可添加多个仓库地址) git remote add originName

使用场景

leader 让您将开源框架拉入公司私人仓库作为基本框架,并根据开源框架的版本进行迭代,实现私人仓库的框架版本迭代。

使用的命令有 git clone git remote

# 克隆开源仓库到本地 git clone git@github.com:vinoMamba/gitDemo.git # 增加私有仓库的关联 git remote add origin git@github.com:vinoMamba/after-delete.git

执行上述代码,您将看到报错。报错内容很明显,由于名称重复,您可以做两种操作:

# 1. 删除原始关联,添加新的关联 git remote rm origin  git remote add origin git@github.com:vinoMamba/after-delete.git # 2. 或者添加新的关联,避免明显的冲突 git remote add origin-vino git@github.com:vinoMamba/after-delete.git # 查看关联 git remote -v 

我的一般操作是第二种。这样做很方便。当需要更新私人仓库的代码时,您可以直接拉动代码进行合并。当然,第一个操作也是可以的。在后期升级中,需要添加开源仓库的关联,并将代码拉入合并。

# 增加开源仓库的关联 git remote add origin-remote git@github.com:vinoMamba/gitDemo.git # 从 远程仓库主分支拉代码(注意) orgin-remote 是您添加开源仓库关联的名称) git pull origin-remote main 

#### 4. git fetch && git pull

使用场景

如何解决代码冲突并合并代码

使用的命令包括: git pull git fetch git merge git log

说到 git pull 和 git fetch。面试的时候经常问两者有什么区别。说实话,如果不是为了准备面试,我不知道。后来看了相关文章和实践才知道。 在我的使用场景中,我通常是git pull 直接拉合并。然后解决冲突。 git pull ,git fetch 提取的代码没有合并到本地代码中,这给了你一个查看远程代码和本地代码区别的机会,更加清晰。

git fetch origin main

git fetch 拉取代码后,将返回仓库代码的最新状态。log 您可以看到更新的内容

# -p 很容易理解,可以理解为指针 point  git log -p FETCH_HEAD git merge --no-ff FETCH_HEAD git status 

当发生冲突时。==== 定位冲突。本地代码在等号上。等号下拉取的代码可以跟踪实际情况。当然,就像 vs code jetbrains 这些现代编辑器有智能提示,更容易操作。当冲突解决后,代码合并可以通过执行提交命令来完成。

## 其他操作

#### 1. git stash

可以理解为灵术,也就是说,将当前工作区的内容推送到一个栈中,当完成分支任务时,将栈中的内容放回工作区。

涉及的命令包括:

  • git stash 将当前工作区更改的内容推送到栈
  • git stash list 查看栈
  • git stash pop 弹出栈

#### 2. git tag

用于打印版本号,一般在发布版本时操作

涉及的命令包括:

# 查看所有标签 git tag  # 创建标签 git tag tagName # 在指定节点创建标签 git tag tagName 34e56b # 填写标签的详细信息 git tag  -a tagName -v "tag message" # 将标签推到远程 git push origin tagName

以上是我在工作过程中使用的。 git 操作,如果我升华后有更深的理解,我会更新这篇文章

完。

好了,这篇文章的内容就和大家分享到这里,如果大家对网络推广引流和网络创业项目感兴趣,可以添加微信:beng3355  备注:项目

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.hzy3.com/1143.html