在开始使用 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
在码云建立远程仓库后,就会提示你用下面的代码对本地仓库进行初始化。
二、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的码云账号。
③用户B向远程仓库推送内容时,首先删除用户A在计算机中保存的账号密码。
任务面板----凭据管理器----windows凭据
六、多人协作开发冲突的解决
①如果用户A和B对同一个文件的同一个地方进行了不同的修改,先提交到远程仓库的可以提交成功,后提交的会因为远程仓库版本高于本地仓库而提交失败。
②此时需要把远程仓库的最新版本拉取到本地,系统会提示有冲突。
③打开文件,手动修改文件,解决冲突。
七、基于ssh免密访问远程仓库 (重点)
① 在命令行中输入 ssh-keygen -t rsa -C "自定义名称",,生成密钥。
② 在C盘--用户--.ssh文件中有两个密钥文件。
③ 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第三天