Git
配置
- 用户名和邮箱
git config --global user.name "hygd"
git config -- global user.email "email url"
使用git
- 初始化空间
git init
- 从远端仓库克隆仓库 git clone -b 分支名 地址 (从dev分支下载代码 git clone -b dev https://gitee.com/r/work.git)
- 克隆代码之后新建与远端同名的本地分支 git checkout -b 本地分支名 origin/远程分支名
- 查看上次提交之后是否对文件再次修改
git status (-s)
提交到本地仓库步骤
- 提交到暂存区
git add ./url
或全部提交git add ./
- 将暂存区文件提交到本地仓库
git commit -m '提交的注释信息'
- 提交日志
git log
/git log --oneline
(简洁版)
撤销操作
提交到了暂存区(即已经add,但未commit)
放弃指定文件的暂存git rm --cached README.md
放弃全部文件的暂存git rm --cache -r
提交到了版本库(即已经commit,但未push到远程)
撤销错误提交的commit到工作区git reset HEAD^
;
退回一次提交改动到工作区git reset --mixed HEAD~1
退回一次提交改动到暂存区git reset --soft HEAD~1
直接硬核回退到上一个commit git reset --hard HEAD^
提交到了远程仓库(已经push过了,只能用一次新commit去撤回一次提交)
git revert HEAD --no-edit
直接硬核回退到上一个commit;–no-edit是直接使用默认Commit Messages
git revert HEAD --edit
git revert HEAD --no-commit
撤销改动到暂存区
Git 常用操作
回退版本
- 回退到上一个版本,会保留历史记录
git reset Head~1
(数字表示退到上几次的版本)或git reset 版本id号码
可以回滚到退之前的版本 - 回退到指定版本,强制删除后续版本历史记录同时更新工作区
git reset --hard Head~1
- 查看所有操作记录日志(包含id)
git reflog
分支
创建分支git branch (branchname)
不加分支名展示所有分支
切换分支git checkout (branchname)
合并分支
git merge [branchname]
指定分支合并到当前分支
git branch -d [branchname]
合并完毕删除临时分支
处理冲突:两个分支合并过程中修改了相同位置的内容会发生冲突。需要人工手动解决,处理完冲突以后需要再次add和commit提交最终版本
分支修改
让本地的local分支跟踪远程的local分支
语法:git branch --set-upstream-to=远程分支 本地分支
实例:git branch --set-upstream-to=origin/dev local
- 查看当前的本地分支与远程分支的关联关系
git branch -vv
- 查看远程分支
git branch -r
- 从远程获取代码库
git fetch
问题refusing to merge unrelated histories(拒绝合并不相关的分支)解决:git pull origin dev --allow-unrelated-histories
远端仓库
- 连接远端仓库
git remote add [shortname] [url]
- 删除远端仓库连接
git remote rm [shortname]
- 查看连接状态
git remote -v
- 向远端仓库上传
git push origin master
(master分支) - 本地无项目,从远端克隆到本地:
git clone -b [branch] [url]
本地有项目时,从远端下拉到本地git pull origin master
- 如果远程新建了一个分支,本地没有该分支。可以利用 git checkout --track origin/branch_name ,这时本地会新建一个分支名叫 branch_name ,会自动跟踪远程的同名分支 branch_name