Git的使用
学习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 ""
git config --list 显示当前的Git配置
git config -e [--global] 编辑Git配置文件
//信息保存在 C:\Users\xxx.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"