之前一直在linux中使用git,没有在win中使用过,所以没有出现过乱码问题,在这里记录下解决该问题的方法;啊,那不如就在这篇博客中记录在使用git时遇到的各种问题吧。
1、gitk乱码:
将全局配置为utf-8即可;
git config --global gui.encoding utf-8
2、合并指定分支到当前分支
git merge xxx
3、删除指定分支
git branch -d xxxx
4、版本回退
git reset --hard HEAD^
这里HEAD^是上一个版本,HEAD就是当前版本。HEAD~100就是往上100个版本,一般也不这么用。
5、查看命令历史
git reflog
6、直接丢弃工作区中的修改(也可用删除文件后的恢复)
git checkout -- xxxx
7、将暂存区的文件恢复到工作区
git reset HEAD xxxx
8、不使用fast forword方式合并分支
git merge --no-ff -m "merge no-ff" dev
9、保存当前工作区(之后可以恢复)
git stash
10、查看保存的工作区存在哪里
git stash list
11、恢复工作区文件同时删除stash区文件
1)git stash apply | git stash drop
2)git stash pop
12、恢复指定工作区文件(因为可以多次stash)
git stash apply stash@{0}
13、复制某个分支上的末次修改到当前分支
git cherry-pick xxxxx(版本号)
https://www.jianshu.com/p/723ed1326964 //参考文章
14、从远端拉取分支
git clone xxxxx(git地址)
15、推送分支
git push origin xxxx(本地分支名称)
推送之前要是用git remote或git remote -v查看远程库的信息
16、在本地建立与远程分支对应的分支(就是建立一个新的分支)
git checkout -b branch-name origin/branch-name
17、建立本地分支与远程分支关联(将该分支和远程分支关联起来,这样pull或者是push的时候就能关联在一起了)
git branch --set-upstream branch-name origin/branch-name
18、从远程抓取分支
git pull
19、查看历史提交
git log --pretty=online --abbrev-commit
20、打标签
git tag 标签 xxxx(id)
21、查看标签信息
git show 标签名
22、创建带有说明的标签
git tag -a tagname -m "commit" commitid
23、删除标签
git tag -d tagname
24、删除远程标签
git push origin :refs/tags/<tagname>
25、搭建git服务器
https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664
26、git clone下载中断问题
git submodule update --init --recursive
27、创建补丁文件
diff -urN file_f file_b > file.patch
参数说明:
-a:将所有文件当作文本文件来处理。
-b或–ignore-space-change 忽略空格造成的不同。
-B或–ignore-blank-lines 忽略空行造成的不同。
-c:使用纲要输出格式。
-H:利用试探法加速对大文件的搜索。
-I:忽略大小写的变化。
-n –rcs:输出RCS格式。
-r 是一个递归选项,设置了这个选项,diff会将两个不同版本源代码目录中的所有对应文件全部都进行一次比较,包括子目录文件。
-N 选项确保补丁文件将正确地处理已经创建或删除文件的情况。
-u 选项以统一格式创建补丁文件,这种格式比缺省格式更紧凑些。
28、打补丁
patch -p0 < mysoft.patch
参数说明:-p0 选项要从当前目录查找目的文件(夹)
-p1 选项要忽略掉第一层目录,从当前目录开始查找。
29、子模块相关
https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E5%AD%90%E6%A8%A1%E5%9D%97