Git在工作中每天都会用到,从开始pull , push ,到后面的回滚和删除,踩过很多坑,这里记录一下。
1. windows系统, git在http模式下,每次都需要输入账号密码的解决方案:
git config credential.helper manager
2. 查看用户名和邮箱地址:
git config user.name
git config user.email
3. 修改用户名和邮箱地址:
git config --global user.name "username"
git config --global user.email "email"
4. Git ignore设置 :
git rm --cached < file name >
git commit
然后添加这个文件到.gitignore中去。其实就是先把远端的去掉,再加到.gitignore 中,这样才会生效。
5. 把push和pull的默认分支设置为dev/master,那么:
git branch --set-upstream-to=origin/dev dev
git branch --set-upstream-to=origin/dev dev
6. 创建远程分支(本地分支push到远程):
git branch [name]
git push origin -f [name]
7. Git切换到一个全新的分支:
git checkout -b <branch>
8. 删除本地分支:
git branch -d <branch_name>
9. 删除远端分支:
git push origin -d <branch_name>
10. 回滚本地所有没有提交的修改
git checkout .
11. 暂存和取消暂存
git stash
git stash pop
12. 删除因改动文件名大小写而生成的暂存
git rm -f src/middleware/file.js
13. 回滚
查看历史日志,回退本地分支:
git reflog
reset到某个节点:
git reset --hard Obfafd
紧接着强制推送到远程分支:
git push -f
14. 回退提交
首先 查看提交号
git log
如果当前是merge提交,需要下面这样:
git revert -m 1 c96eeea38b1c6aab70fb6795575f0d3d3b01e592
git push
否则
git revert c96eeea38b1c6aab70fb6795575f0d3d3b01e592
git push
15. 使用 git rebase [basebranch] [topicbranch] 命令
可以直接将特性分支(即本例中的 server)变基到目标分支(即 master)上。
这样做能省去你先切换到 server 分支,再对其执行变基命令的多个步骤。(但是这里的提交记录还是会保留的)
git rebase master server // 这个时候已经在server分支了
git checkout master
git merge server
16. 比较分支和版本
git diff master..server
相反,这些比较信息仅仅是在分支层面上的,你也可以比较任意的两个项目版本之间的内容:
git diff 0023cdd..fcd6199
17. 保持Master分支干净
先从master 拉一个分支A,
然后目标B分支rebase master 分支
然后Git Graph对比 A & B分支的差别,同步B到A(手动)
提交A,Master Merge A
18 本地创建SSh-Key
1、 ssh-keygen -t rsa -C “邮箱地址”
2、 打开当前计算机名(如我当前计算机名是 xxx)
C:\Users\xxx.ssh下面的id_rsa.pub,然后复制里面的所有内容
3、 打开github设置ssh-key的地址,在title里面输入你这个key用在哪的,(可以随便写),在key里面粘贴进去上面复制的