常用git命令

462 阅读2分钟

几个重要的概念

  • 本地:本地编码区域
  • 远程:远程仓库
  • 暂存:本地和远程中间的暂存区域
  • 分支:每个分支可以做不同修改

关联远程主机

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,修改和更新一定要注意,否则不会生效导致代码编译出现问题