git使用方法
git代码提交流程
git status:用于查看上次提交之后是否有对文件进行再次修改
git add . :将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录
git commit -m "message" :将暂存区内容添加到本地仓库中,并添加注释
git checkout:表示核查工作区相对于版本库修改过的文件
git diff:用来比较file文件的改变内容
git pull:从远程获取最新版本并merge到本地
git fetch:从远程获取最新到本地,不会自动merge
git remote:查看远程库的信息
git branch:查看当前分支(列出所有分支,当前分支前面会标一个*号)
git stash:把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list:查看工作现场
git stash apply:恢复工作现场(stash内容并不删除)
git log:查看分支的合并情况
git config core.quotepath false:git的配置来改变默认转义
git pull origin master --allow-unrelated-histories:允许不相关历史提交,并强制合并
git从远程仓库获取最新代码合并到本地分支
两种方式:
1. git pull:获取最新代码到本地,并自动合并到当前分支
2. git fetch + merge: 获取最新代码到本地,然后手动合并分支
第一种方式git pull:
git pull方式:不推荐这种方式,因为是直接合并,无法提前处理冲突。
//查询当前远程的版本
$ git remote -v
//直接拉取并合并最新代码
$ git pull origin master [示例:拉取远端origin/master分支并合并到当前分支]
第二种方式git fetch + merge:
//查询当前远程的版本
$ git remote -v
//获取最新代码到本地(本地当前分支为[branch],获取的远端的分支为[origin/branch])
$ git fetch origin master [示例:获取远端的origin/master分支]
//查看版本差异
$ git log -p master origin/master [示例:查看本地master与远端origin/master的版本差异]
(下面可以先git stash,再git merge,再git stash pop手动合并差异)
//合并最新代码到本地分支
$ git merge origin/master [示例:合并远端分支origin/master到当前分支]
git开始
在命令行设置提交的用户信息,包括用户名和邮箱:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
gitlab添加秘钥
通过命令生成秘钥文件,把秘钥(公钥)文件内容放到git服务器上,这样可以免密进行代码推送:
ssh-keygen -t rsa -C “xxxxxx@email.com”
创建本地仓库,并与远程仓库进行关联
简单方式:
//把远程仓库克隆到本地,就相当于创建本地仓库,而且自动建立了链接,并且把远程仓库中的内容也同步到了本地
git clone “远程仓库地址” “本地仓库文件夹名字(不写默认是仓库名字)”
克隆指定分支的代码
git clone -b 分支名 仓库地址
另一种方式:
git init =>创建本地仓库
git remote add origin “远程仓库GIT地址” =>让本地仓库和远程仓库保持连接
git remote -v =>查看连接信息(origin是连接的名称,一般都用这个名字,当然自己可以随便设置)
git remote rm origin =>移除本地仓库和远程仓库的链接
git remote update origin =>更新链接通道
初始化本地仓库
git init // 初始化版本库
git add . // 添加文件到版本库(只是添加到缓存区),.代表添加文件夹下所有文件
git commit -m "first commit" // 把添加的文件提交到版本库,并填写提交备注
把代码推到远程仓库
git remote add origin “远程仓库GIT地址” =>让本地仓库和远程仓库保持连接
git push -u origin master
分支
git checkout -b xxx 创建分支并且切换到指定分支下
(可以把本地master中的历史信息同步到新创建的分支中)
git push --set-upstream origin xxx 本地分支关联远程分支
git branch 查看当前仓库所有的分支,并且查看当前在哪个分支上
git branch xxx 创建一个分支叫xxx
git checkout xxx 切换分支到xxx
git branch -D xxx 删除分支xxx
git merge xxx 把xxx分支的历史信息合并到当前分支下
git stash 为了防止信息的丢失,我们需要先使用stash保存,
git stash pop 基于stash pop还原
删除本地有但在远程已经不存在的分支
# 获取远端分支信息,看本地和远端不同步的地方
git remote show origin
# 删除本地有但在远程库已经不存在的分支
git remote prune origin
git reset
常用命令:
//一个会改变你工作目录的命令,如果你在执行该命令后,你的所有未提交改动都将无法找回,所以在运行此命令前一定要确认你的操作。
git reset --hard HEAD
使用reset命令,可通过移动HEAD指针达到回退版本的目的。
有三种方式:
git reset --soft <commit-id> //保留【工作区和暂存区】,重置仓库,恢复到执行git commit之前的状态
git reset <commit-id> //保留【工作区】,重置暂存区,等同于git reset --mixed
git reset --hard <commit-id> //不保留
从上到下(reset-soft, reset, reset-hard),重置程度逐步扩大,只有reset-hard重置时,才会实际修改本地代码。