-
配置用户名与邮箱
git config --global user.name “user”
git config --global user.email “user@gmail.com”设置名字 user.name 和 user.email
git init
初始化一个仓库
git clone url
获取一个url对应的远程Git仓库,创建一个local copy 一般格式是git clone [url] clone下来的仓库会以url最后一个斜线后面的名称命名, 创建一个文件夹,如果想要指定特定的名称, 可以git clone [url] newname指定.
-
更新分支
git pull origin [分支名称]
何入patch之前
git branch
git branch (查看当前所在分支)
git branch -a (查看所有分支)
git branch -v 查看每一个分支的最后一次提交
git checkout
git checkout + 分支 (切换分支)
git checkout + 文件 (还原修改的文件)
git checkout . (还原当前所有修改的文件)
- 合入patch
git apply <补丁路径> --directory=<补丁相对路径>
合入前检查
git apply <补丁路径> --directory=<补丁相对路径> --check
若无返回值或返回warning可以直接合入
若返回error则使用–reverse检查
git apply <补丁路径> --directory=<补丁相对路径> --check --reverse
若无返回值则说明该patch已经被包含在代码里,若返回error则需要手动合入
git am
将补丁,提交并在本地创建一个commit.am命令可以不必添加commit
git apply
仅对本地文件打补丁,不创建commit.
如果git am有问题,可以尝试git apply,再做修改
1.check
为了防止出错可以加个--check参数再打补丁之前检查一下:
2.reverse
如果有报错可以再加个--reverse参数检查需不需要打这个patch:
3.reject
若还有报错则需要使用--reject参数强制打补丁
结束后一般会提示生成.rej文件
就可以找到这个文件手动合入patch。
也可以使用find ./ -name *.rej 命令寻找rej文件。
**备注**
生成的.rej文件手动修改完毕需要删去,
不然可能在需要编译时,编译的过程中会出现编译错误
git diff
比较的是工作目录中当前文件和暂存区域快照之间的差异
git diff . > 文件名称
导出修改点
git clean
git clean 的作用是删除工作目录中尚未添加到git版本控制的文件或目录。
未添加到版本控制,且不在.gitignore中的,都是Untracked的状态。
git clean -i interactive,可交互的删除文件或目录
git rm
从已跟踪文件清单中移除
git commit -m “xxxx”
添加单行提交记录,告诉Git把文件提交到仓库
git commit --amend
重新更改上一次commit
git log
git log [当前文件夹下文件路径] 可查看关于该文件的提交记录
git log -- [文件路径]
可查看关于该文件的提交记录
git log -p [文件名称]
过滤提交记录,并且能查看每次提交记录中,对该文件的修改
git log -p -2 显示最近的两次提交所引入的差异
git reset --hard HEAD~3
回退最近三次补丁
- 导出patch
git format-patch [commit]
导出[commit]之后不包含此次的patch
git format-patch HEAD^^^
导出最近三次patch
git format-patch [commit_id] -n
制作某次提交(含)之前的n次提交,如果是某个commit则n的值为1
git format-patch [commit_id]
制作某次提交(不含)之后后的所有提交的补丁
git format-patch -n
制作最后一次提交(含)之前的n次提交的补丁
git format-patch HEAD^
制作最后一次提交补丁
git format-patch HEAD^^
制作最后两次提交补丁
git format-patch [x_commit_id] … [xx_commit_id]
制作某两次commit之间的所有commit的patch,注意中间有两个点
- 回退提交
git reset --hard HEAD~3
回退最近三次补丁,并删除修改点
git reset [commit_id]
回退补丁不删除修改点
回退git add的文件
git reset HEAD 回退暂存区里的文件