目录
一、获取本地仓库
二、为常用指令配置别名
三、基础操作指令
四、分支
五、Git远程仓库( 码云Gitee)
(一)配置SSH公钥
(二)Gitee设置账户公钥
六、操作远程仓库
(一)添加远程仓库
(二)查看远程仓库
(三)推送到远程仓库
(四)查看本地分支与远程分支的关联关系
(五)从远程仓库克隆
(六)从远程仓库中抓取和拉取
(七)解决合并冲突
七、在IDEA中使用Git
(一)在IDEA中配置Git
(二)初始化本地仓库
(三) 提交到本地仓库
(四)创建项目远程仓库
(五)推送到远程仓库
(六)克隆远程仓库到本地
(七)创建分支
八、场景分析
九、几条铁令(注意事项)
笔记跟课:黑马程序员 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即可实现指令别名的设置。
三、基础操作指令
序号 | 指令格式 | 说明 |
1 | git add | 【工作区 ----> 暂存区】 |
2 | git commit | 【暂存区 ----> 本地仓库】 |
3 | git status | 查看修改的状态 |
4 | git add 单个文件名|通配符 | 添加工作区一个文件的修改到暂存区 |
git add | 将所有修改加入到暂存区 | |
5 | git commit -m "注释内容" | 提交暂存区的内容到本地仓库的分支中 |
6 | git log [option] | 查看提交记录 |
●options: ▢ --all 显示所有分支 ▢ --pretty=oneline 将提交信息显示为一行 ▢ --abbrev-commit 使得输出的commitid更简短 ▢ --graph 以图的形式显示 | ||
7 | git reset --hard.commitID | 版本切换(commitID 可用 git log 指令查看) |
8 | 希望某些文件不要纳入git的管理:创建 .gitignore 文件(文件名称固定),然后列出要忽略的文件模式(例如:*.a doc/*.txt) |
四、分支
序号 | 指令格式 | 说明 | |
1 | git branch | 查看本地分支 | |
2 | git branch 分支名 | 创建本地分支 | |
3 | git checkout 分支名 | 切换分支 | |
git checkout -b 分支名 | 直接切换到一个不存在的分支(创建并切换) | ||
4 | git merge 分支名 | 一个分支的提交可以合并到另一个分支 | |
5 | git 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修改同一个文件的同一行提交到本地没有问题。但是推送到远程仓库时,后一个推送操作就会失败。
解决方法:需要先获取远程仓库的代码到本地仓库,编辑冲突,提交并推送代码。
九、几条铁令(注意事项)
- 切换分支前先提交本地的修改✅✅✅
- 代码及时提交,提交过了就不会丢
- 遇到任何问题都不要删除文件目录