日期:2021年12月22日
出处:黑马程序员Git全套教程,完整的git项目管理工具教程,一套精通git
正文
基础概念
git就是共享版本库,可以对我们的代码进行版本控制
git有远程仓库和本地仓库
个人理解git可以类比共享文档(如日报表)
重要命令
版本回滚 git reset --hard commitID
查看所有记录(包括删除记录) gitreflog
查看提交记录 git log
切换分支 git checkout 分支名
添加文件之忽略列表
一般我们总会有些文件无需纳入Git的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。在这种情况下,我们可以在工作目录中创建一个名为.gitignore的文件(文件名称固定),列出要忽略的文件模式。下面是一个示例:
# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf
分支
重要命令
查看本地分支
- git branch
创建本地分支
- git branch '分支名'
切换分支
- git checkout '分支名'
- git checkout -b'分支名'(创建并切换)
合并分支:一个分支上的提交合并到立一个分支上
- git merge '分支名'
删除分支
- git branch -d '分支名'
- git branch -D '分支名'(强制删除)
冲突解决
当两个分支对同一文件进行修改的时候会出现冲突,冲突发生后会生成如下文件:
解决方法就是编辑该文件修改修改成最终的目标文件,再提交到仓库一次即可
连接远程仓库
git远程仓库(托管服务) 如GitHub,码云等等
重要命令
- 将本地代码推送到远程仓库 git push [-f] [--set-upstream] [远端名称[蹦迪分支名][:远端分支名]]
例如:git push origin master :master
-
- -f 表示强制覆盖
- --set-upstream 推送到远端的同时并且建立起和远端分支的关联关系
- 从远程仓库中抓取和拉取(将远程仓库的修改更新到本地)
抓取:git fetch [远端名称] [分支名]
抓取指令就是将仓库里的更细都抓取到本地,不会进行合并
拉取:git pull [远端名称] [分支名]
拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch + merge
远程分支也是分支,所以合并是冲突的解决方式也和解决本地分支冲突的方式相同
IDEA操作git
基本的快捷入口:
IDEA操作git的入口:
注意事项
切换分支前一定要先提交本地代码,不然会出现代码丢失的情况
发现问题及解决方案
总结
git的重点是用IDEA操作git,包括在IDEA中配置,查看提交记录等等的git命令,git是分布式版本控制工具,它解决了多人合作写项目交互复杂的难题,再也不用copy到U盘里面了,并且一些开源的资源也可以放到远程仓库中,即防止了代码因操作不当丢失,又方便了管理。在使用IDEA操作git中主要就是明确操作步骤,比如要先提交代码,再在一些窗口中操作和查看,因为git命令都被简化成了IDEA中的一些按键功能,所以理解了git的原理之后,只需记住对应的按键即可。