git命令使用指南

git指南

本文基于个人git使用经验总结而成,可供初学者上手参考,欢迎补充与指正!
下载安装config以及添加ssh等请自行搜索完成。

git仓库

本地fork上游
localoriginupstream
基于本地仓库修改代码自己fork的仓库,拥有修改权限,可以push本地代码源仓库,一般没有修改权限,所以无法直接push;拥有最新版本的代码

本地仓库初始化相关命令

需求分析:

我要开始为开源社区做贡献了!

git初始化命令

新建本地目录,在该目录下进行如下操作:

已有项目远程仓库
  1. 下载代码
    git clone origin_ssh_url
  2. 添加与之关联的上游仓库(名字可以随意,建议命名为upstream)
    git remote add upstream upstream_ssh_url
    ok,到这里就把github里的项目挪到本地了,下一步是开发前的准备——更新/新建分支。
本地项目尚未上传
  1. 初始化本地git仓库
    git init
  2. 添加与之关联的fork仓库(名字可以随意,建议命名为origin)
    git remote add origin origin_ssh_url
  3. 确认关联仓库
    git remote -v

更新本地代码

需求分析:

  1. upstream仓库有更新,而自己fork的origin仓库和本地代码不会自动与之同步。
  2. 其他原因导致本地代码落后于upstream(或origin,极特殊情况)的代码

实际上,origin/master是不需要单独更新的,因为只要将local/master更新至upstream/master,就可以在本地master的基础上新建本地分支,基于最新代码进行修改。修改完成后再push至origin上。

git更新本地代码命令

  1. 拉取上游代码
    git fetch upstream
    git fetch upstream
  2. 同步本地分支 local/master -> upstream/master
    git rebase upstream/master
    git rebase upstream/master
  3. 此时使用git status查看状态
    git status
    会发现本地代码已经同步了上游的代码,领先了origin的代码,此时已经可以开始开发了。如果你非要让origin也同步:
    git push origin master
    接下来就可以进行开发了~

分支

需求分析:

  1. 需要开发多个独立的功能,并以pr的方式逐一提交。
  2. 需要保留master上的代码。

注:

分支同样分为本地(local)分支、origin分支、upstream分支。
一般在本地,与上游代码同步后,基于local/master新建本地分支,该分支中的代码继承master,且在该分支上的改动不会影响local/master中的代码。
建议开发时,尽量将不同分支上开发无互相依赖的不同功能,如在branch A上开发A功能,切换到branch B上开发B功能……
分支之间互不影响,但仍然要注意是否有依赖,否则会在合并时出现冲突。尽量使各功能的开发独立。

开发新功能时请记得切换回到master再新建分支!!

git分支常用命令

git checkout branch_name
切换至branch_name分支
git checkout -b new_branch
新建并切换至new_branch分支
git branch -a
查看所有分支(标记的为所在分支)
git branch -D branch_name
删除本地的branch_name分支(请不要直接在该分支上做这种过河拆桥的事情),该操作不会影响远程仓库的分支
git push origin :branch_namegit push origin --delete branch_name
删除远程分支——fork仓库的branch_name分支

提交本地代码

需求分析:

  1. 保存,防止电脑突然歇菜
  2. 暂存,以便之后放弃修改回退到该状态
  3. 开发完成,准备回馈上游社区

git提交命令

本地代码的提交分为三步:推到暂存区、添加提交内容描述、推到origin仓库的新分支上

  1. 建议先确认下修改内容,是不是在正确的分支上,因为如果搞错了,这里没有新修改的内容,是推不上去的
    git status
  2. 将本地修改推到暂存区
    git add -A
    -A的意思是全部

有许多网上教程在这一步写的是git add .,但该命令仅提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件;git add -u表示将已跟踪文件中的修改和删除的文件添加到暂存区,不包括新增加的文件;-A则包括以上两种功能
git add -i可以查看所有被所有修改过或已删除文件但没有提交的文件
git add [<path>]可以指定添加文件或目录至暂存区

  1. 添加提交描述,这个commit会显示在仓库首页,即最近一次修改,请用简洁正常语句撰写,之前的所有commit也都会保留在github的仓库里,这样比较好看版本修改内容
    git commit -m "simple normal words"
  2. 推送至origin仓库新分支,建议跟本地分支同名
    git push origin new_branch
    然后就可以打开github网页,自己的仓库首页就会提醒你是否根据这个branch创建pr。

合并多个提交commit

需求分析:

  1. 发现了很多typo,分了好几次才全部修改完成,自己看不下去
  2. 热爱提交,commit琐碎重复,被老大要求合并成一个commit
  3. 根据网上教程进行了同步或合并,结果不仅merge了别人的commit,还没有合并成功自己的commit

git合并多个提交命令

  • 查看log
    git log
    gitlog
    这里会出现很多个commit,找到你需要合并的commit,比如将最新一个(HEAD所指)commit和第二个合并为一次提交,复制作为父亲的提交后面那一串 c47e54a3c35b6cec9f5fd2be0fc3905785df6df0之类的
  • 重置提交状态到父提交时,之后会在这个基础上提交一次新的、合并了所有需要合并的提交的提交
    git reset xxxxx
    注:实际上,这一步还可以通过git rebase -i xxx来squash,但是个人认为比reset要复杂很多,所以没有详细写。
  • 重新推到暂存区
    git add -A
  • 对提交内容描述进行修改
    git commit --amend
    会进入文本编辑,修改描述,之后的commit就只有这次描述了,合并的commit里的旧描述可以注释掉
    amend
  • push到origin
    git push -f origin xxx
    -f的作用是强制推送到orign,因为前面在本地合并commit之后,对应的远程分支中的commit并没有变化,git会认为远程分支的提交领先于本地分支
    -f
    强制推送之后即可合并远程分支上的commit
    刷新github看看commit记录

代码版本同步

需求分析:

  1. 开发到一半,upstream突然更新了
  2. 开发前忘记更新本地分支

git同步命令

  • 先拉取upstream
    git fetch upstream
  • 需要版本回退,用upstream/master更新本地代码
    git rebase upstream/master
  • 或者需要合并本地代码和上游代码
    git merge upstream/master
    可能会遇到各种冲突,根据git提示来就行,直接打开vscode也会给你标出冲突的地方,选择就行

git rebasegit merge要好,想要更好的提交树,使用rebase操作会更好一点。这样可以线性的看到每一次提交,并且没有增加提交节点。
merge操作遇到冲突的时候,当前merge就不能继续进行了。手动修改冲突内容后,add提交修改,再commit就可以了。
rebase操作的话,会中断rebase,同时会提示去解决冲突。解决冲突后,将修改add后执行git rebase –continue继续操作,或者git rebase –skip忽略冲突。

修改pr

直接修改对应的本地分支再push到origin对应分支就行了,pr会自动跟着branch的commit变

总结

综上,一套完整的开发、提交pr流程一般为:

  1. 新建本地目录,后续操作都需要在这个目录下进行
  2. 第一种情况:
    如果不存在远程仓库,即为还未上传的本地项目,在该目录下,git init初始化本地git仓库,这个命令用一次就行了,之后基于该仓库的操作请勿再使用init命令,人生没有重来,本地仓库也是
    git remote add origin ssh_url ssh_url是复制自己的仓库的ssh,将本地仓库关联该远程仓库
    git remote -v查看关联的仓库
    第二种情况:
    Github上已有项目远程仓库
    git clone ssh_url将代码下载下来,建议使用fork的origin仓库
    git remote add upstream ssh_url关联上游仓库
    git remote -v查看关联的仓库
    git fetch upstream+git rebase upstream/master开发之前一定要确保本地代码与上游同步,是最新的
  3. git checkout -b feature-A基于local/master,新建本地分支,开发功能A
  4. 开发ing……
  5. 开发完成后,git status看看修改的文件是不是那几个,确认后git add -A把所有的文件(代码)加入暂存区(或者git add [<path>]将指定文件或目录加入暂存区)
  6. git commit -m "the changes"添加一次提交,""内填写本次提交概述
  7. git push origin branch_name将刚才加入暂存区的文件(代码)和提交内容推到origin的branch_name分支中
  8. 在github网页上,将origin/branch_name分支以pr形式提交给上游仓库
  9. 如若需要进行下一个功能的开发,记得切换回master分支,再新建本地feature-B分支进行B功能的开发

注意!

为国争光,禁用pull,从我做起。

git pull是一个非常强硬的命令,它会忽略一切细节并且可以把git fetchgit mergegit rebase等等的活儿都干了,中间没有出于安全考虑的确认
该命令还会将合并结果记录在新提交中,包含两个父提交的名称以及来自用户的描述更改的日志消息
虽然简单,但请勿使用git pull

流程链接

贡献流程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: VSCode GitLens 使用指南: 1. 安装 GitLens 插件:在 VSCode 中搜索 GitLens 并安装。 2. 打开 GitLens:在 VSCode 左侧的侧边栏中,点击 GitLens 图标。 3. 查看 Git 仓库历史记录:在 GitLens 中,可以查看 Git 仓库的历史记录,包括提交记录、分支、标签等。 4. 查看文件历史记录:在 GitLens 中,可以查看文件的历史记录,包括每个版本的修改记录和作者信息。 5. 比较文件版本:在 GitLens 中,可以比较不同版本的文件,查看文件的差异。 6. 查看代码作者:在 GitLens 中,可以查看每行代码的作者信息,以及代码贡献者的统计信息。 7. 查看代码注释:在 GitLens 中,可以查看每行代码的注释信息,以及注释的作者信息。 8. 查看代码分支:在 GitLens 中,可以查看每行代码所在的分支信息,以及分支的历史记录。 9. 查看代码标签:在 GitLens 中,可以查看每行代码所在的标签信息,以及标签的历史记录。 10. 使用 GitLens 命令:在 VSCode 中,可以使用 GitLens 提供的命令,例如查看当前文件的 Git 历史记录、查看当前文件的注释信息等。 ### 回答2: VSCode GitLens 是 VSCode 插件市场上最受欢迎的 Git 工具,它提供了详细的 Git 仓库文件修改记录和代码行修改记录,可帮助您更好地处理代码库和代码提交。 一、安装插件 首先需要安装 VS Code,然后在插件市场中搜索“GitLens”并安装它。 二、使用 GitLens 1. 查看文件历史记录 在 VS Code 编辑器中打开一个文件,然后按 Ctrl + Shift + P 打开命令面板。在命令输入框中搜索“GitLens: File History”命令,并按回车键。然后 GitLens 就会显示文件的历史记录,你可以在其中查询每个提交的详细信息。 2. 查看代码行历史记录 在编辑器中选择代码行,然后右键单击,选择“GitLens: Blame”命令GitLens 会显示你选择的代码行的所有提交记录,以及每个提交所做的代码更改。 3. 代码比较 在 VS Code 编辑器中打开一个文件,右键单击文件并选择“GitLens: Compare File With...”命令。然后选择一个当前存在的分支或提交版本,并 GitLens 就会显示文件和另一个文件版本之间的差异。你甚至可以比较两个不同的分支之间的差异。 4. 查看分支和 TAG 信息 在 VS Code 编辑器顶部的状态栏中,单击分支名称,GitLens 就会显示与你当前的分支相关的历史记录和标签信息。此外,你还可以查看该分支相关的远程仓库信息和分支历史记录。 5. 快速浏览仓库文件 你也可以通过按 Ctrl + Shift + P 打开命令面板,然后搜索“GitLens: Quick File History”命令来快速浏览仓库中所有文件的历史记录。你只需选择项目或文件名,然后就可以查看该文件的历史记录。 结论 综上所述,VSCode GitLens 插件可以让你更好地处理 Git 仓库和代码提交。无论您是新手还是老手,它都是一种可靠的方法,可帮助您管理仓库并快速查找和比较代码。如果你还没有使用 GitLens,我建议你现在就去 VS Code 插件市场中下载。 ### 回答3: VS Code是一个非常强大的代码编辑器,包含许多有用的功能和扩展。其中一个最流行的扩展是GitLens,它为您提供与Git相关的所有功能和更多。在这个指南中,我们将会讨论如何使用GitLens来更好地管理您的代码库。 首先,在VS Code中安装GitLens扩展。这可以通过打开Extensions(Extensions)面板并搜索“GitLens”来完成。一旦安装成功,您就可以在VS Code编辑器的左侧栏中看到GitLens的小图标。 接下来,我们将讨论GitLens的一些主要功能。 1. 界面显示和代码注释 GitLens为您的代码提供了一些有用的标签,这些标签位于每个代码行的左侧。例如,您可以看到谁在代码仓库中进行了更改,以及更改是何时发生的。您还可以在鼠标悬停在代码行上方时查看完整的代码注释。 2. 历史记录 GitLens使得查看代码仓库的历史记录变得非常容易。通过单击GitLens小图标,在窗口下方打开GitLens面板。在此面板中,您可以查看仓库的所有提交,以及它们是何时创建的。 3. 比较和合并 GitLens提供了强大的比较和合并功能,使代码合并变得非常容易。例如,您可以比较两个提交之间的差异,或者查看代码中的一个特定变量是在哪个提交中添加的。 4. 代码搜索 GitLens使得搜索代码变得更加容易。您可以使用全局搜索工具查找整个代码库中的任何内容,并使用GitLens面板中的搜索工具查找特定提交或更改。 总的来说,GitLens是一个非常有用的工具,可以帮助您更好地管理和维护代码库。无论您是新手还是有经验的程序员,都可以受益于GitLens的许多功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值