几个重要的概念
- 本地:本地编码区域
- 远程:远程仓库
- 暂存:本地和远程中间的暂存区域
- 分支:每个分支可以做不同修改
关联远程主机
git remote add [远程主机名] [git的url]
查看分支
git branch
git branch -r # 查看远程分支
git remote -v # 查看远程主机
git branch -a # 查看本地所有分支
新建分支
git branch [name]
git checkout -b [name] # 新建新分支并立即切换到新的分支
切换分支
git checkout [name]
删除分支
git branch -d [name] # 只能删除已经参与合并的分支
git branch -D [name] # 强制删除分支
合并分支
git merge [name] # 将名称为[name]的分支与当前分支合并
将本地分支提交到远程主机的远程分支
# 第一种
git push <远程主机名><本地分支名>:<远程分支名>
# 第二种
git checkout -b [本地分支名] # 先切换到本地某分支
git push --set-upstream [远程主机名][远程分支名]
本地的修改不提交进行撤回操作
git checkout . # 撤销对所有修改但未提交的文件的修改,但不包括新增文件
git checkout [filename] # 撤销对指定文件的修改
回退项目版本
git reset hard [commit-hashcode]
# [commit-hashcode]是某个commit的哈希值,可用git log查看
git submodule
# 新建submodule
git submodule add <仓库地址><本地路径>
# 此时新增了文件.gitmodules,里边有path和url
# clone有submodule的项目
git submodule init # 初始化本地配置文件
git submodule update # 从该项目中抓取所有数据
# 或者两条命令合并
git submodule update --init --recursive
# 更好的方式
git clone --recursive <仓库地址>
# 更新submodule
git submodule update --remote
# 如果submodule中还有submodule依赖
git submodule foreach git submodule update
# submodule的修改
# 进入submodule的目录,先切换到master
git checkout master
# 随之进行修改,然后正常提交
项目中的有submodule,修改和更新一定要注意,否则不会生效导致代码编译出现问题