目录
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 core.autocrlf false git config --global core.safecrlf true #通常情况下这个设置建议开启,否则diff 不同版本时,会记录不同换行符 |
配置SSH key
使用你本地的私钥和远程仓库的公钥进行验证是否是一对秘钥
win环境下SSH key 配置_windows ssh key_nandao158的博客-CSDN博客
Linux环境下需要命令生成ssh key
- 生成key
PowerShell |
- 复制key到gitlab的ssh key中
本地git管理
- git init 初始化库
- git add .
- git commit -m “解释”(如果直接git commit还会进去到vim,qa退出)
- git diff可查看与上个版本的不同(不过建议学会用fork)
多人协作流程
- git log查看当前仓库的版本号(第一个是当前仓库的版本号,第二个是最近提交的版本号)
- 根据版本号是否一致,来看是否要git pull --rebase(拉取最新代码)
- 完成需求
- git stash(藏匿)
- git pull --rebase(拉取最新代码)
- git add . 将所有文件添加到缓存区等待提交
- git stash pop后解决冲突
- 在项目路径输入wsl(从开发环境vs code中的git bash命令中切换到wsl)
- (当代码成功入库后,相关功能完善可以反复使用的同一个JIRA-ID)
- git commit -m “xxx”,xxx例如 类型(范围): [<JIRA-ID>] <英文总结,首字母大写, no_3rd_skip 代表突破500行代码或10个文件更改的限制> 建议每改一个整块逻辑,就提交
- arc diff 代码审核,进入vim编辑模式,(arcanist代码提交审核工具)
PowerShell |
注意英文还是中文输入.(例如“,”,“.”),建议直接复制上次正确的格式
最后会生成一个Differential Revision的网址URI,可以看到区别
追加
如果review审核不通过,根据需求修改后进行追加和更新,
PowerShell |
重新提交
如果不想要在上次提交上追加,可以直接删除,重新提交
arc land(reviewer审核通过后)首字母大写,例如:feat(auto): [ID] Add new function
PowerShell |
每个提交只能进行一次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 |
如果要比较暂存区中的更改与最新提交之间的差异,可以使用以下命令:
Plaintext |
还可以将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 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本地仓库