Git常用命令及常见问题

注:本人项目中常用到的,记录一下。仅供参考
git clone http://账号:密码@克隆地址(账号为邮箱时,@ 使用 %40 替换)
git clone -b 远程分支名 仓库地址

git checkout -b dev 切换分支,没有就创建
git pull origin dev
git add .
git commit -m “注释内容”
git push origin dev
git checkout master
git merge origin/master dev 或者 git merge dev
git push origin master (代码合并之后一定要记得推送上去)


附:git常用操作命令
git branch -a 查看所有分支
git status 查看文件修改状态
git reset HEAD 文件地址 可以将提交到暂存区的文件重置回来
git fetch 拉取远程最新修改(1)
git merge FETCH_HEAD master 将拉取到的最新修改与当前分支合并(2)
(1)(2)这两步相当于git pull


git回滚代码
1》git add到暂存区,并未commit提交
git reset HEAD 文件地址 可以将提交到暂存区的文件重置回来

2》git commit到本地分支、但没有git push到远程
git log 得到你需要回退一次提交的commit id
git reset --hard <commit_id> 回到其中你想要的某个版
git reset --hard HEAD^ 回到最新的一次提交
git reset HEAD^ 此时代码保留,回到 git add 之前

3》已经git push到远程
git log
git reset --hard <commit_id>
git push 将远程仓库中错误的覆盖掉(一定不能漏)
4》还原单个文件,前提:还没git add
git checkout – [filepath]//单个文件
git checkout .//所有文件


git 删除本地、远程分支
git branch -d dev 删除本地
git branch -D dev 强制删除
git push origin --delete dev 删除远程

常见报错:
1》error: The branch ‘dev’ is not fully merged.
If you are sure you want to delete it, run ‘git branch -D dev’.

2》error: Cannot delete branch ‘dev’ checked out at ‘C:/wamp64/www/***’
由于是在需要删除的分支上执行删除操作,所以切换到其他分支再删除这个需要删除的分支就可以了。


git commit 中文乱码:
git config -global core.quotepath false (测试无效,建议重装 git(待验证))


修改 git commit的备注内容:
1、输入
git commit --amend
2、进入vim编辑器,点击键盘 i 进入编辑模式,编辑完毕后,点击键盘esc退回到普通模式,输入:wq 保存并退出


不同操作系统换行符问题:
git config core.autocrlf false (仅对当前git仓库有效)
git config --global core.autocrlf false (全局有效)
就算使用了全局更改,后面经常还是会出现这个问题。(大佬们有好的意见欢迎留言)


git rebase 与 git merge的区别
1、rebase后提交曲线简洁,merge相对较乱。
2、merge结果能真实体现提交时间线,而rebase会打乱时间线。
3、merge后会新成一个新的commit提交,而rebase只是修改commit提交并不会形成新的。
单人开发分支可以使用rebase,多人合作开发建议用git merge。
见:git rebase 与 git merge 取舍


git reflog 查看历史记录

git reflog
8b0f68e HEAD@{0}: pull: Fast-forward
1b2c852 HEAD@{1}: reset: moving to HEAD@{1}
d6cf47e HEAD@{2}: pull: Fast-forward
1b2c852 HEAD@{3}: pull: Fast-forward

git reset --hard HEAD@{n} 回退版本


git pull 之后查看哪些文件有修改

git diff 显示工作目标与索引文件之间的差异
git different -cached 显示索引文件与git仓库之间的差异
git diff HEAD 显示工作目录与git仓库之间的差异
git diff HEAD^ 显示上一次提交之前工作目录与git仓库之间的差异


多人开发,本地推送代码时提示要先git pull一下。
我刚开始是git pull之后继续git push,之后会发现提交记录中出现两条推送记录,第一条是 正常的你提交的备注,第二条却是一条合并的备注,有强迫症的朋友可以在git pull之后再次 git commit -m "备注"一下,最后在git push,这样提交记录中合并的那条记录的备注就会显示你第二次填写的备注。

菜鸟上车,请大佬多多指点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值