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 "[email protected]"

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 分支
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 [email protected]

  • 提示: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,然后再拉取或推送代码。

你可能感兴趣的:(2021-05-08Git)