2021-05-08Git

在开始使用 Git 管理项目的版本之前,需要将它安装到计算机上,选择下载对应的 Git 安装包:
https://git-scm.com/downloads
工作区----暂存区----本地仓库----远程仓库

一、git基础配置

第一步:在项目目录中,通过鼠标右键打开“Git Bash”
1.配置自己的用户名和邮件地址

git config --global user.name "lsf"
git config --global user.email "itheima@itcast.cn"

2.查看所有的全局配置项

git  config   --list  --global

在码云建立远程仓库后,就会提示你用下面的代码对本地仓库进行初始化。


捕获.PNG

二、git工作流程

1.将当前的目录转化为 Git 仓库
git init 命令会创建一个名为 .git 的隐藏目录

git init

2.检查文件的状态--是否添加到暂存区

git status

3.向暂存区添加新文件

git add 文件名

如果文件过多,跟踪项目目录下所有文件

git add   .

4.向git仓库提交更新

git commit -m "更新的说明"

5.查看git仓库的更新记录

git log

三、撤销

1.用暂存区文件覆盖当前工作区的内容

git checkout 暂存区文件名称

2.将文件从暂存区中删除

git rm --cached 要删除的文件名

3.撤销操作

git restore 文件名 / . 撤销工作区的修改
git restore --staged 文件名 撤销暂存区的修改,将文件恢复到未add之前
git restore -s 版本号id 文件名 将当前工作组替换为指定的版本

4.用git仓库中的历史记录,覆盖当前工作区的内容以及暂存区的文件。

git reset --hard commitID(历史更新的ID)

四、分支

1.master 主分支
(1)概念:在初始化本地 Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做 master 的分支。通常我们把这个master 分支叫做主分支。
(2)作用:在实际工作中,master 主分支的作用是:用来保存和记录整个项目已完成的功能代码

2.开发分支
开发分支是主分支的一个副本,功能在开发分支完成后再拷贝到主分支。

3.功能分支
功能分支指的是专门用来开发新功能的分支,它是基于开发分支的,当新功能开发且测试完毕后,最终需要合并到开发分支上

4.分支命令
(1)查看分支列表

git branch

注意:分支名字前面的 * 号表示当前所处的分支

(2)创建新分支

git branch 分支名称

注意:
① 基于当前分支,创建一个新的分支;
② 此时远程仓库没有此分支,需要 git push origin 分支名

(3)切换分支

git checkout 分支名称

注意:切换分支之前,必须把当前分支的所有暂存区文件提交到git仓库中。

(4)合并分支

功能分支的代码开发测试完毕之后,可以使用如下的命令,将完成后的代码合并到 master 主分支上:

① 基于master主分支生成了自己的分支feature_lsf,此时两个分支都有了新的commit记录。执行git merge之前,先在feature_lsf分支上执行 git rebase master 命令,可以将master分支上新的commit记录更新到feature_lsf上(可能需要解决冲突)https://blog.csdn.net/weixin_45565886/article/details/133798840
git rebase master
② 切换到 master 分支
git checkout master
③ 在master 主分支上运行 git merge 命令,将 其他 分支的代码合并到 master 分支
git merge 其他分支名称

注意:合并分之后,其他分支依然存在,还可以切换到其他分支上继续开发。

(5)删除分支

git branch -d 分支名称

注意:
①如果被删除的分支还没有合并到主分支上,系统会默认删除失败。
②不能删除当前所处的分支。
③强制删除分支:git branch -D 分支名称

(6)分支的快速创建和切换

git checkout -b 分支名称

注意:-b 表示创建一个新分支。 checkout 表示切换到刚才新建的分支上

5.暂时保存分支上的更该

如果当前分支上的暂存区文件还没提交到git仓库,但是又想切换分支的话,可以暂时保存暂存区内容。

git stash 临时保存当前分支上工作区的文件(剪切)
git stash pop 将当前分支恢复到临时保存的内容(粘贴)

注意: stash提供的暂存功能独立于分支。在恢复临时保存的内容时,一定要注意当前所处的分支。

五、远程仓库--码云(GitHub中文版)

https://gitee.com/
---------------------------------使用Github多人协作开发流程如下:----------------------------------


1.A在自己的计算机中创建本地仓库。

在项目根目录中执行。(用脚手架创建项目时,默认创建好了,不用我们再执行下面的代码)

git init

2.A在GitHub中创建远程仓库。

①点击新建仓库
②填写仓库名称。

3.A将本地仓库推送到远程仓库。(重点)

主意:如果多个人开发同一个页面,则推送代码时应当先拉取最新的(主分支)代码到本地。

(1)方案1:

git push  远程仓库地址   分支名称

(2)方案2:可以给远程仓库起一个自定义名称,下次推送时用自定义名称代替地址。

git remote add 自定义名称 远程仓库地址
git push 自定义名称 分支名称

备注:git remote -v 可以查看已经自定义名称的远程仓库。

(3)方案3:可以在第一次推送到远程仓库时加"-u",下次推送到远程仓库时直接用git push

git remote add 自定义名称 远程仓库地址
git push -u 自定义名称 分支名称
git push

注意:
①第一次向远程仓库推送内容需要验证账号和密码。
②第一次推送到远程仓库后,计算机会记住当前的账号和密码,下次推送时不需要输入。
③如果切换用户B对远程仓库进行操作,必须先把计算机保存的用户A的账号密码删除。

4.B克隆远程仓库到本地进行开发。

git clone 远程仓库地址

5.第一次创建并切换分支 (重点)

(1)如果远程存在分支,而本地没有。

git checkout -b feat_lsf origin/feat_lsf

① 从远程分支feat_lsf创建新本地分支feat_lsf并检出。
② 在本地创建feat_lsf分支,并将远程仓库的feat_lsf分支内容拉下来。
③ 第一次推送时请用: git push -u origin feat_lsf,后续就可以直接git push了。

(2)如果要在本地和远程都创建新的分支。
① 先确定新分支要用哪个分支的代码,这个分支暂称 基础分支
② 先保证本地有 基础分支:git checkout -b release-uat origin/release-uat
③ 在本地基础分支上,创建 本地新分支:git checkout -b 新分支
④ 推送到远程时直接git push。

6.A将远程仓库中的最新内容拉到本地仓库。(重点)

git  pull  远程仓库地址(自定义名称)  分支名称

注意:①克隆仓库命令是基于本地没有仓库时使用,只在第一次加入仓库时使用
②从远程仓库中拉取最新内容是基于本地已有仓库,后续都是用这个命令
③远程仓库的版本高于本地仓库的话,是无法向远程仓库提交新内容的。

7.B将本地仓库开发的内容推送到远程仓库。

①首先在命令行中切换到克隆的仓库目录下再进行操作。

cd 路径名称

②程序猿B想要向远程仓库推送内容,必须先让程序猿A在码云中邀请B的码云账号。


捕获.PNG

③用户B向远程仓库推送内容时,首先删除用户A在计算机中保存的账号密码。

任务面板----凭据管理器----windows凭据

六、多人协作开发冲突的解决

①如果用户A和B对同一个文件的同一个地方进行了不同的修改,先提交到远程仓库的可以提交成功,后提交的会因为远程仓库版本高于本地仓库而提交失败。
②此时需要把远程仓库的最新版本拉取到本地,系统会提示有冲突
③打开文件,手动修改文件,解决冲突。

七、基于ssh免密访问远程仓库 (重点)

① 在命令行中输入 ssh-keygen -t rsa -C "自定义名称",,生成密钥。

② 在C盘--用户--.ssh文件中有两个密钥文件。

捕获.PNG

③ id_rsa是私钥,保存在本地;id_rsa.pub是公钥,将里面的内容复制粘贴到码云账号中。

④ 测试公钥:打开终端,输入命令ssh -T git@gitee.com

  • 提示:Hi xxx,说明公钥配置成功了,可用使用了
  • 首次使用需要确认并添加主机到本机SSH可信列表

⑤ 使用当前账号提交到远程仓库时,使用ssh地址即可。

八、git忽略清单

①实际开发时,会将所有的文件一次性添加到暂存区。(git add .)
②此时,要把用不到的文件添加到忽略清单。
③在当前工作仓库文件夹(git-demo)下,新建一个 .gitignore 文件, 所有不想提交到暂存区的文件名写在里面。

九、为仓库添加详细说明

在仓库目录下(git-demo)添加一个readme.md文件,推送到远程仓库。

十、更多

https://blog.csdn.net/halaoda/article/details/78661334

十一、电脑上切换git账号

  • 想切换自己的git账号:
    ① 修改用户名、邮箱;
    ② 如果使用的是http地址:执行git config --global --unset credential.helper 用代码删除本地保存的远程仓库的账号信息凭证;再执行git config --global credential.helper store重新生成信息凭证。
    保险起见,物理删除本地旧的git账号密码(任务面板----凭据管理器----windows凭据)
    可参考:https://blog.csdn.net/weixin_44523517/article/details/126261412
    ③ 如果使用的是ssh密钥:删除或修改ssh密钥。

1.查看电脑上的git账号信息(github账号):git config --list
2.修改电脑的git用户名和邮箱:git config --global user.name "xxx" || git config --global user.email "xxx"
用户名可以自定义,它会在远程仓库的提交记录里显示。(邮箱跟github保持一致吧)
3.没有ssh密钥而是使用http地址时:推送或拉取代码会让你填用户名和密码,这个是指远程仓库的用户名和登录密码(比如gogs、gitee、gitlab)。
4.没有ssh密钥而是使用http地址时,全局免密配置:执行git config --global credential.helper store,然后再拉取或推送代码。

十二、nvm、nrm工具

详情见Node.js第三天

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容