学习Git的内容
工作流程:工作区(本地工作目录)->暂存区->版本库(分支)
工作区:本地目录
暂存区:在.git目录中的 stage
版本库:.git目录
常用命令
git init 将当前目录变成git可管理的仓库
git add 本地文件添加到暂存区
git commit -m "xxxx" 推送至版本库(本地分支 默认master)
git push 推送至远程版本库(远程分支)
git push -f origin master 强制推送本地至远程
git pull 从远程拉取至本地
git log查看修改历史
git log --graph 可到分支合并图
git reset --hard HEAD^ 回退上一个版本 上上个版本即^^ 如数字较大可使用 git reset --hard HEAD~100 进行回退
git checkout -- filename 可以放弃工作区对此文件的修改 (从暂存区恢复 例 a.txt已修改未add 可以使用此命令丢弃此文件的修改 或者工作区此文件已删除也可使用此命令找回文件)
git remote add origin https://github.com/xxx/xxx.git
git push -u origin master 将本地仓库推送至远程 -u参数将本地master和远程master关联 加了参数-u后,以后即可直接用git push 代替git push origin master
git clone 克隆远程仓库至本地
git status 可查看是否有未提交文件
git diff filename 可查看具体改动内容
git remote -v 查看远程仓库地址
git stash 保存当前工作状态
git stash list 查看stash
git stash apply 恢复存储的状态
git stash drop 删除
git stash pop 恢复并删除 相当于上面两条命令(看到这个pop感觉这里就和栈一样,临时保存一些东西)
git tag v1.0 创建新标签
git tag 查看标签
git push origin v1.0 推送某标签至远程
git push origin --tags 推送所有标签至远程
分支相关命令
git checkout -b dev 创建并切换至dev分支 -b参数为创建
git branch dev 创建分支dev
git switch -c dev创建并切换
git switch切换分支
git checkout dev 切换分支到dev
git branch 查看当前所在分支
git merge dev 合并dev分支到当前分支
git branch -d dev 删除分支
git checkout -b dev origin/dev 创建远程分支到本地
git push --set-upstream origin dev 推送分支至远程
git push origin dev:dev 功能同上 更好记
基础信息配置
git config --global user.name "xx" 设置提交代码时的用户名及邮箱
git config --global user.email "xx@x.x"
git config --list 显示当前的Git配置
git config -e [--global] 编辑Git配置文件
//信息保存在 C:Usersxxx.gitconfig
开发中常用操作
本地创建后与远程关联
git init 初始化
git add . 将所有文件添加到暂存库
git commit -m "first commit" 提交至本地版本库
git remote add origin https://github.com/xxx/xxx.git 关联远程
git push -u origin master 推送至远程 之后不用-u参数 可直接git push
git push -f 强制推送 使用时需谨慎!!
从远程克隆
git clone https://github.com/xxx/xxx.git 从远程克隆
some code....
git add aa.java bb.java
git commit -m "modify some file"
git push origin master (可简化为git push)
拉取
git pull 从远端拉取至本地
其他操作
git rm 文件名 删除本地git仓库文件, 提交后远程服务器上的文件才会消失
分支管理
创建、切换、合并、删除
git checkout -b dev 创建并切换
git branch 查看当前
git push --set-upstream origin dev 推送分支至远程
git push origin dev:dev 功能同上 更好记
git checkout master 切换回主分支
git merge dev 合并dev至主分支
git branch -d dev 删除dev分支
新版本可使用git switch -c dev创建并切换
git switch切换分支
git merge --no-ff -m "merge with no-ff" dev
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
通常合并分支时,git一般使用”Fast forward”模式,在这种模式下,删除分支后,会丢掉分支信息,现在我们来使用带参数 –no-ff来禁用”Fast forward”模式。
冲突解决
git merge dev git提示冲突
CONFLICT (content): Merge conflict in 11.txt
Automatic merge failed; fix conflicts and then commit the result.
git status也可看见冲突文件
修改冲突的文件再提交
git add 11.txt
git commit -m "conflict fixed"