笔记跟课:黑马程序员 https://www.bilibili.com/video/BV1MU4y1Y7h5/https://www.bilibili.com/video/BV1MU4y1Y7h5/
一、获取本地仓库
在一个新建的空目录中,点击右键打开Git Bash窗口,执行命令git init,创建成功可看到隐藏的.git目录
二、为常用指令配置别名
在当前目录下创建一个 .bashrc文件(指令:touch .bashrc),在 .bashrc文件中输入以下内容:
#用于输出git提交日志
alias git-log="git log --pretty=oneline --all --graph --abbrev-commit"
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'
打开git bash,执行 source .bashrc即可实现指令别名的设置。
三、基础操作指令
序号指令格式说明1git add【工作区 ----> 暂存区】2git commit【暂存区 ----> 本地仓库】3git status查看修改的状态4git add 单个文件名|通配符添加工作区一个文件的修改到暂存区git add将所有修改加入到暂存区5git commit -m "注释内容"提交暂存区的内容到本地仓库的分支中6git log [option]查看提交记录
●options:
▢ --all 显示所有分支
▢ --pretty=oneline 将提交信息显示为一行
▢ --abbrev-commit 使得输出的commitid更简短
▢ --graph 以图的形式显示
7git reset --hard.commitID版本切换(commitID 可用 git log 指令查看)8希望某些文件不要纳入git的管理:创建 .gitignore 文件(文件名称固定),然后列出要忽略的文件模式(例如:*.a doc/*.txt)
四、分支
序号指令格式说明1git branch查看本地分支2git branch 分支名创建本地分支3git checkout 分支名切换分支git checkout -b 分支名直接切换到一个不存在的分支(创建并切换)4git merge 分支名一个分支的提交可以合并到另一个分支5git branch -d b1删除分支时,需要做各种检查不能删除当前分支,只删除其他分支git branch -D b1不作任何检查,强制删除
五、Git远程仓库( 码云Gitee)
(一)配置SSH公钥
- Git Bash指令:ssh-keygen -t rsa
- 不断回车,若公钥已存在,则自动覆盖
(二)Gitee设置账户公钥
- 获取公钥指令:cat ~/.ssh/id_rsa.pub
- 将公钥粘贴到此处:
六、操作远程仓库
(一)添加远程仓库
- 指令:git remote add <远端名称> <仓库路径> ▢ 远端名称,默认orign,取决于远端服务器设置 ▢ 仓库路径 示例:
(二)查看远程仓库
- 指令:git remote
(三)推送到远程仓库
指令:git push [-f] [--set-upstream] [远端名称[本地分支名][:远端分支名]] ▢ 若远程分支名与本地分支名相同,可以只写本地分支 例:git push origin master ▢ -f 表示强制覆盖 ▢ --set-upstream 推送到远端的同时,并且建立起和远端分支的的关联关系 例:git push --set-upstream origin master ▢ 如果当前分支已经和远端分支关联,则可以省略分支名和远端名 例:git push (将master分支推送到已关联的远端分支)
示例:
结果:
(四)查看本地分支与远程分支的关联关系
- 指令:git branch -vv
(五)从远程仓库克隆
- 指令:git clone <仓库路径> <本地目录> ▢ 本地目录可以省略,会自动生成一个目录 ▢ 一般只用一次
(六)从远程仓库中抓取和拉取
远程分支和本地分支一样,可以进行merge操作,只是需要先把远端仓库里的更新都下载到本地,再进行操作。
- 抓取指令:git fetch [remote name] [branch name] ▢ **抓取指令就是将仓库里的更新都抓取到本地,不会进行合并 **▢ 若不指定远端名称和分支名,则抓取所有并更新当前分支。
- 拉取指令:git pull [remote name] [branch name] ▢ 拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge ▢ 若不指定远端名称和分支名,则抓取所有并更新当前分支。
(七)解决合并冲突
情形:在一段时间,A,B同时修改了同一个文件的同一行代码,此时会发生合并冲突。
A的操作:本地修改 -> 远程仓库
B的操作:本地修改 -> 远程仓库
因为B晚于A,所以B实际上需要先拉取远程仓库的提交,经过合并才能推送到远端分支。但此时便会发生合并冲突。
合并远程分支与合并本地分支相同,指令:git merge [分支],然后会生成一个冲突的文件,手动修改冲突的内容,再次提交即可。
七、在IDEA中使用Git
(一)在IDEA中配置Git
IDEA -> Settings -> Git (IDEA会自动识别Git路径)
(二)初始化本地仓库
(三) 提交到本地仓库
(四)创建项目远程仓库
在Gitee中新建一个远程仓库
(五)推送到远程仓库
(六)克隆远程仓库到本地
(七)创建分支
八、场景分析
场景:
- 组长基于本项目创建本地仓库,创建远程仓库,推送项目到远程仓库。
- 每一位组员从远程仓库克隆项目到 IDEA 中,这样每位组员在自己电脑上就有了一个工作副本,可以正式地开始开发了。
- 组员A修改工作区,提交到本地仓库,在推送到远程仓库。组员B可以直接从远程仓库获取最新的代码。
- 组员A和组员B修改同一个文件的同一行提交到本地没有问题。但是推送到远程仓库时,后一个推送操作就会失败。 解决方法:需要先获取远程仓库的代码到本地仓库,编辑冲突,提交并推送代码。
九、几条铁令(注意事项)
- 切换分支前先提交本地的修改✅✅✅
- 代码及时提交,提交过了就不会丢
- 遇到任何问题都不要删除文件目录
版权归原作者 ReadyGo!!! 所有, 如有侵权,请联系我们删除。