前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试官说又逮到一个不会用Git的

面试官说又逮到一个不会用Git的

作者头像
崩天的勾玉
发布2021-12-20 17:25:52
3020
发布2021-12-20 17:25:52
举报
文章被收录于专栏:崩天的勾玉崩天的勾玉

吐槽一下,b站编辑器是真的难用

Git是一个分布式的(每台电脑都有自己的本地仓库,github、码云之类只作为中转站)版本控制工具,说白了就是拉代码、提交代码的多人协作工具。

和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了

结构一览:

进入https://git-scm.com/downloads,选择自己的系统下载安装即可,这里不做赘述。

安装好后我们需要进行配置,设置提交代码时的用户信息

包括用户名和邮箱:

代码语言:javascript
复制
git config --global user.name "用户名"
git config --global user.email 邮箱

使用git config --list命令可以查看当前的配置信息。

(多个相同变量名取最后一个,出现这种情况是因为配置了多个配置文件)

链接github

主流的远程仓库还是github,所以我们首先要将本地的git绑定自己的github账号。

1、首先要有一个github账号:https://github.com/

2、使用如下命令生成你的证书和密匙:

代码语言:javascript
复制
ssh-keygen -t rsa -C "你的邮箱"

之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。

成功的话会在git安装目录下生成 .ssh 文件夹,进去,打开 id_rsa.pub,复制里面的 key

3、将 key复制粘贴到github个人主页的配置信息处:

右上角头像——settings——SSH and GPGkeys——new SSH key——key

为了验证是否成功,输入命令:ssh -T git@github.com

代码语言:javascript
复制
$ ssh -T git@github.com
The authenticity of host 'github.com (52.74.223.119)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes      # 输入 yes
Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.
Hi tianqixin! You've successfully authenticated, but GitHub does not provide shell access. # 成功信息

这样,github就成了我们的一个远程仓库了。

装好了后,我们先需要了解几个很重要的概念,不然很难对有git深入的了解。

1、工作区(Workapace)

 程序员开发改动的地方,是你当前看到的,也是最新的。

 平时开发就是拷贝远程仓库中的一个分支,并基于该分支进行开发。在开发的过程中就是对工作区的操作。

2、暂存区(Index/Stage)

 .git目录下的index文件,暂存区会记录 git add 添加的文件的相关信息(文件名、大小...),不保存文件实体。可以使用git status查看暂存区的状态。暂存区标记了你当前工作区中,哪些内容是被Git管理的。

 当你完成某个功能需要提交到远程仓库中,那么第一步就是要将更改通过git add提交到暂存区,被Git管理。

3、本地仓库(Repository)

 保存了对象被提交过的各个版本,比起工作区和暂存区的内容,它更旧一些。

git commit后同步index的目录树到本地仓库,方便从下一步通过git push同步本地仓库与远程仓库。

4、远程仓库(Remote)

 远程仓库的内容可能被分布在多个地点的处于协作关系的本地仓库修改,因此它可能与本地仓库同步,也可能不同步。我们在提交之前需要git pull使本地仓库拉下代码。

5、HEAD

HEAD,它始终指向当前所处分支的最新的提交点。你所处的分支变化了,或者产生了新的提交点,HEAD就会跟着改变。

6、总结:

  1. 任何对象都是在工作区诞生和被修改;
  2. 任何修改都是从进入index区才开始被版本控制;
  3. 只有把修改提交到本地仓库,该修改才能在仓库留下足迹;
  4. 与协作者分享本地的更改,需要将更改push到远程仓库

这里主要介绍一下常用的流程,其余的详细命令会另外补充。

1、如果是将本地代码上传到远程仓库:

先在github上new一个repositories仓库,记得勾选readme.md(项目说明文件)

然后回到桌面,在本地新建一个文件夹,作为项目根目录,再此启动 Git Bash ,进入目录,并输入命令初始化一个本地git仓库

代码语言:javascript
复制
git init

将本地仓库和我们在github上创建的远程仓库对接起来,输入

代码语言:javascript
复制
git remote add yourname git_url

add 后面的yourname是你的仓库的称呼,可以自己随意定义(要记住)。git_url是仓库的git地址(点code——ssh,复制过来)。

使用该命令查看链接是否成功

代码语言:javascript
复制
git remote -v

拉取仓库代码,:

代码语言:javascript
复制
git clone yourname main

yourname是刚才自定义的名字。main代表要拉取的分支。

注意,2020年10月份已经将新建仓库的默认分支命名为main,而以前的仓库默认分支是master。

本地将要写的代码文件写好,例如我写了一个123.java文件。

首先将123.java文件添加到暂存区

代码语言:javascript
复制
git add 123.java

然后再提交到本地仓库中去:

代码语言:javascript
复制
git commit -m "这里写文件说明"

然后我们需要把它push到远程仓库中去:

代码语言:javascript
复制
git push yourname main

yourname替换成你的仓库的称呼

1、首先要fork一份到自己的仓库中再修改,毕竟没人会让你直接改他的仓库:

2、克隆仓库

我们可以在需要存放仓库的位置打开cmd,然后输入命令将仓库整个克隆下来

代码语言:javascript
复制
git clone url

注意,这里的url复制项目的ssh,不要使用https(否则每次提交代码都需要登录):

3、添加项目地址作为远程仓库

首先cd进入项目目录;

然后复制自己fork下来的项目的地址,并在终端内输入:

(其中url为fork下来的项目的地址,demo只是一个名字代称而已你要是愿意也可以把它改为其他名字,下同)

代码语言:javascript
复制
git remote add demo url

添加完成后你可以运行 git remote -v 可以查看所有远程主机,origin标识的为原项目。

4、修改代码并提交

代码经过你本地一通修改后,就可以提交了。

提交前首先确保本地代码的版本与远程仓库demo相同(注意我这里叫demo,你那里不一定):

避免版本冲突:

代码语言:javascript
复制
git pull demo main

git pull命令详解:https://www.runoob.com/git/git-pull.html

git pull和git clone区别:https://blog.csdn.net/lijing742180/article/details/84636977

接着是提交三件套:git addgit commitgit push

代码语言:javascript
复制

git add .

git commit -m "说明"

git push demo main

git add 详解:https://www.runoob.com/git/git-add.html

git commit详解:https://www.runoob.com/git/git-commit.html

git push详解:https://www.runoob.com/git/git-push.html

5、将自己的修改请求告知原作者:

我们回到github,点击进入我们的远程仓库,点击pull request按钮:

接着会出现比较界面,

代码区域内有用红色和绿色标出的代码块,红色表示我们修改前的代码,绿色表示我们修改后的代码,当我们确定提交的代码没有问题后,便点击图中绿色的按钮create pull request。

在leave a commit区域内填写你所修改内容的注释,便于管理员阅读代码,填写完成后点击绿色按钮create pull request,pr就提交上去了,接下来的事就交给管理员吧。

如果是自己创建仓库写代码上传(demo是自己仓库的自定义名字):

代码语言:javascript
复制
git init
git remote add demo git_url
git clone git_url

git pull demo main

如果是修改别人的项目:

fork后

代码语言:javascript
复制


git clone git_url
git remote add demo git_url
......
git remote -v
git pull origin main
git add .
git commit -m ""
git push demo main
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 崩天的勾玉 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档