一、代码提交
# 1、查看并解决冲突
# 暂存本地 git stash与git stash pop 需成对出现
git stash
# 更新远程
git pull
# merge本地暂存与远程代码,可能会出现冲突
git stash pop
# 若出现冲突,修改冲突文件
git add XX
# 2.提交代码
# 文件/文件夹(. 所有文件)
# 工作区-->暂存区
git add xx
# 暂存区-->版本库
git commit -m "xxxxx"
# 版本库-->远程仓库
git push
二、本地代码提交到远程仓库中
# 一
# 本地代码初始化为仓库
cd 项目路径
git init
# 添加远程仓库
git remote add origin 仓库地址
# 将远程仓库pull到本地
git pull origin master
# 提交代码
git add .
git commit -m "初始化代码"
# 将本地仓库推送到远程仓库
# git push --set-upstream origin master
# git push --set-upstream origin master -f
git push origin master
# 二
# 克隆远程仓库 加入到本地项目 推送到远程仓库
git clone ... # 默认master分支
git clone -b dev(分支名) ... # 指定分支
...
三、分支常用命令
# 1 查看分支
# 查看分支:本地+远程 *号表示本地当前使用分支
git branch -a
# 查看本地分支
git branch
# 查看远程分支
git branch -r
# 2 查看本地分支与远程分支的映射关系
git branch -vv
* dev abcxxx [origin/dev] xxx
# 3 删除分支
# 删除本地分支 -D也可以是--delete
git branch -D dev
# 删除本地的远程分支:
git branch -r -D origin/dev
# 远程删除git服务器上的分支 -d也可以是--delete
git push origin --delete dev
四、本地创建分支
# 1 普通分支
# 本地创建分支
# git branch test
# 切换分支
# git checkout test
# 同上述2命令
git checkout -b test
# 本地分支推送到远程仓库
git push origin test
# 2 独立分支
# 创建一个孤立的空分支
git checkout --orphan test
# 删除此分支中的索引及索引中的所有文件
# 注意如果有不在索引中的文件,则需要手工删除(包括.gitignore)
git rm -rf .
rm -rf ...
# 上面命令后,用git branch是看不见当前分支的,需第一次commit后才可查看
# add commit
git add xxx
git commit -m 'xxx'
# 本地分支推送到远程仓库
git push origin test
1 远程分支拉到本地
# 一
# 把远程分支拉到本地
git fetch origin dev
From ssh://github.com/repo/repo.git
* branch dev -> FETCH_HEAD
# 在本地创建并切换到该分支 (并和远程建立映射关系)
git checkout -b dev(本地分支名称) origin/dev(远程分支名称)
# 把分支上的内容都拉取到本地
git pull origin dev
# 二
# 会在本地新建分支,但是不会自动切换到该本地分支,需要手动checkout (未和远程建立映射关系)
git fetch origin dev(远程):dev(本地)
# 切换分支
git checkout dev
# 本地分支和远程分支建立映射关系的作用
git branch --set-upstream-to=origin/dev dev
# 把分支上的内容都拉取到本地
git pull origin dev
2 分支合并(未完待续)
# 拉取最新代码
git pull
# 会拉取远程分支代码,并和本地分支代码合并、
git pull origin dev
....
五、拉取远程仓库的指定目录
注意:只能检出目录下的文件
# 一
# 初始化仓库
# mkdir repo
# cd repo
# git init
git init repo
# 设置允许克隆子目录
git config core.sparsecheckout true
# 设置指定目录:可指定多个目录
echo 'src/*' >> .git/info/sparse-checkout
echo 'resource/*' >> .git/info/sparse-checkout
# 拉取远程仓库all objects信息
git remote add -f origin ssh://github.com/repo/repo.git
# 开始拉取
git pull origin master
# 代码更新
git pull origin master
# 二
git clone -n ssh://github.com/repo/repo.git
cd repo
git config core.sparsecheckout true
echo 'src/*' >> .git/info/sparse-checkout
echo 'resource/*' >> .git/info/sparse-checkout
git checkout master
# 代码更新
git pull
六、版本回退(未完待续)
# 查看日志
git log # 或 git log --pretty=oneline
# 回退到指定commit提交节点
git revert commit_id
...
七、其他命令
# 删除文件
git rm 文件
# 查看工作区状态
git status
# 查看修改内容
git diff 文件
# 查看日志
git log
# 查看以往的命令记录
git reflog
网友评论