前言
对经常使用的git相关知识的速记,便于回顾------未完待续
目录
git :分布式版本控制工具
优点:易学习,占地面积小,性能极快,廉价本地库,方便的暂存区和多个工作流分支
1.版本控制
软件配置管理(scm)是指通过执行版本控制,变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。
版本控制:记录文件内容变化,以便将来查阅特定版本修订情况的系统
作用:个人开发过渡到团队合作
保存重要的历史记录(文件)
恢复数据
集中式版本控制系统(CVS、SVN):单一的集中管理服务器——中央服务器的单点故障,文件冲突问题
分布式版本控制器(git): 版本控制在本地进行
2.git安装
下载地址:Git安装,基本上无脑下一步
3.工作机制和代码托管中心
0
代码托管中心:基于网络服务器的运程代码仓库
局域网:GitLab
互联网:Github、Gitee
4.Git分支
分支:在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。分支可以简单理解为副木,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)——提高开发效率
分支冲突:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。git无法替我们决定使用哪一个。必须人为决定新代码内容。
5.团队合作
1.团队合作
2.团队外合作
6.Git常用命令
命令名称 | 作用 |
git config --global user.name 用户名 | 设置用户签名 |
git config--global user.email邮箱 | 设置用户签名 |
git init | 初始化本地库 |
git clone 路径 <仓库名> | 下载远程仓库 |
git status | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git rm --cached 文件名 | 从暂存区删除 |
git commit -m "日志信息" 文件名 | 提交到本地库 |
git restore 文件名 | 恢复删除文件 |
git revert 版本号 | 恢复版本 |
git reflog | 查看历史记录 |
git log --oneline | 查看详细历史记录 |
git reset --hard 版本号 | 版本穿梭(移动head指针) |
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git checkout -b 分支名 | 创建并切换分支 |
git merge 分支名 | 合并指定分支到当前分支 |
git cat-file -p 版本号 | 查看文件 |
git tag 别名 版本号 | 增加别名 |
git remote -v | 查看远程仓库 |
git remote add 关联名字 远程地址 | 关联远程仓库 |
git push 别名/链接 <分支> | 推送到远程仓库 |
git pull 关联名称 <分支> | 拉取远程仓库 |
git clone 远程链接 | 克隆代码(拉取代码,初始本地库,创建别名) |
git remote remove 关联名字 | 删除关联仓库 |
git remote rename 关联名字 | 更改名称 |
ssh -keygen -t rsa -C 远仓ssh地址 | 生成ssh公钥 |
7. .gitinore文件
.gitignore 文件是一个文本文件,它告诉 git 不要跟踪特定的文件、目录或文件类型
全局设置:将文件放在C:/Users/用户名/目录下 使用命令git config --global core.excludesfile ~/.gitignore
# IDE
.vscode/
.code/
.idea
#java
.classpath
.project
.settings
*.class
.mtj.tmp/
*.jar
*.war
*.ear
*.nar
hs_err_pid*
#maven
target/
**/target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# 编辑器
*.iml
*.ipr
*.iws
/out/
/target/
.idea_modules/
atlassian-ide-plugin.xml
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
#其它
*.zip
*.tar.gz
*.rar
*.log