git
仓库管理
- git init:初始化一个git仓库。Git使用git init命令来初始化一个Git仓库,执行完git init命令后,会生成一个.git目录,该目录包含了资源数据,且只会在仓库的根目录生成。
- git clone:clone一个git仓库
在当前目录下生成.init文件夹,并且会默认生成一个master分支
git init
指定的目录下生成仓库
git init newDir
使用git clone命令可以从Git仓库拷贝项目,url为git仓库地址,directory为本地目录
git clone <url> [directory]
git 克隆指定分支
git clone -b <name> <url>
git 查看远程仓库地址
git remote -v
git 取消关联仓库
git remote rm origin
git 添加远程仓库
git remote add [远程仓库别名] <远程仓库URL>
获取远程分支
git fetch origin
git 修改指定远程仓库的push地址
git remote set-url --push <远程仓库别名> <远程仓库URL>
git 给origin添加多个远程仓库地址,实现一起推送至多个仓库
git remote set-url --add origin <远程仓库URL>
git 删除origin添加的多个远程仓库地址
git remote set-url --delete origin 地址
分支管理
- git branch:查看分支命令
- git checkout:切换分支命令
- git merge:合并分支命令
/** git branch:可以查看分支,也可以创建分支 */
git branch // 查看当前分支,本地分支
git branch dev // 创建dev分支 (dev可选)
git branch -d dev // 删除dev分支
git branch -r // 查看远程分支
git branch -a // 查看所有分支 (包括远程分支)
git branch -u origin/远程分支名 // 将本地新建的分支与远程分支相关联
git branch --set-upstream-to origin // 远程分支名
git branch -vv // 查看本地分支与远程分支的映射关系
git branch --unset-upstream // 撤销本地分支与远程分支的关系
/** git checkout:切换分支 */
git checkout master // 切换至master分支
git checkout -b dev // 创建dev分支并切换至dev分支
git checkout -b dev origin/dev // 创建远程分支到本地
/** git merge:合并分支 */
git merge dev // 合并dev分支至当前分支
git fetch origin // 不指定分支名就是远程全部分支
git fetch origin XXX // 拉下远程指定的分支
git remote update origin --prune // 更新远程分支列表
git push origin --delete Chapater6 // 删除远程分支Chapater6
git branch -d Chapater6 // 删除本地分支 Chapater6
// 设置上游分支
适用远程分支已存在
$ git branch --set-upstream-to=origin/<远程分支> <本地分支>
git push --set-upstream origin cloud_desktop_dev
适用远程分支不存在,上传本地分支到远程,同是把上传后的远程分支设置为本地分支的上游分支
git push set-upstream origin HEAD:<远程分支>
取消分支上游
$ git branch --unset-upstream
查看上游:
可以通过git status 、 git checkout <分支>、git branch -vv命令查看
提交拉取
git log 命令查看
git log --oneline // 查看历史记录的简洁版本
git log --graph // 查看历史中什么时候出现了分支、合并
git log --reverse // 逆向显示所有日志
git log --author=user // 查找用户user的提交日志
git log --since=[1999-9-9] // 指定时间开始
git log --before=[1999-9-9] // 指定时间前
git log --until=[1999-9-9] // 指定时间结束
git log --after=[1999-9-9] // 指定时间后
git log --no-merges // 选项以隐藏合并提交
git log --decorate // 标记让git log展示所有指向每个提交引用
合并不同仓库
git status
git reset --hard
git log // 对照commit是否是最新
git checkout -b backup dev // 切换新分支backup用于本地合并
git branch -d dev // 删除旧的分支,防止和新仓库分支重名
git remote rm origin // 取消关联仓库
git remote add origin 仓库名 // 关联仓库
git fetch origin // 拉取远程全部分支
git checkout -b 分支 origin/分支
git merge backup // 合并
疑难杂症
文件名之前是小驼峰 ,改成大驼峰后提交,git仓库没变化 还是小驼峰,修改文件名提交不到远处仓库
// 检查是否忽略大小写,返回true 或 false,true是忽略大小写
git config --get core.igonrecase
// 修改成false
git config core.igonrecase false
git pull后拉下来的代码不是远程仓库中最新的
git fetch --all
git reset --hard origin/master
git pull
地址
fetch地址:拉取地址
push地址:推送地址,可绑定多个实现同时推送至多个仓库