git更新代码
- 克隆自己仓库的代码
- 如果已经克隆则增加远程原始主库分支到本地
仓库地址: git remote add raid_master git@xxx.git
git remote add xxx_master ssh://git@xxx.git
- 如果已增加远程分支,直接fetch原始分支
git fetch xxx_master
- 合并两个版本
git merge xxx_master/master
- 提交自己代码
git push origin master
- 每次同步都从第三步开始就可以了
git push命令
git push命令用于将本地分支的更新,推送到远程主机。它的格式与git pull命令相仿。
$ git push <远程主机名> <本地分支名>:<远程分支名>
注意,分支推送顺序的写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>。
如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。
$ git push origin master
上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。
$ git push origin :master
等同于
$ git push origin --delete master
上面命令表示删除origin主机的master分
强制推送分支到远程
git push –f
#Git撤销工作区的所有修改并删除暂存区文件
git reset --hard HEAD : 将stage area中未提交的file回滚到之前的commit状态
git clean -d -f 删除未跟踪的目录和文件
仅仅删除暂存区里的文件
git rm --cache 文件名
删除暂存区和工作区的文件
git rm -f 文件名
删除错误提交的commit
//仅仅只是撤销已提交的版本库,不会修改暂存区和工作区
git reset --soft 版本库ID
//仅仅只是撤销已提交的版本库和暂存区,不会修改工作区
git reset --mixed 版本库ID
//彻底将工作区、暂存区和版本库记录恢复到指定的版本库
git reset --hard 版本库ID
git分支创建
添加远程库
git remote add xxx ssh://git@xxx.git
创建并切换分支
git checkout -b xxx origin/xxx
git clone非master分支代码
执行 git clone -b dev <仓库地址>
Git diff 用法
用于比较两次修改的差异
- 比较工作区与暂存区
git diff 不加参数即默认比较工作区与暂存区
- 比较暂存区与最新本地版本库(本地库中最近一次commit的内容)
git diff --cached [
…]
- 比较工作区与最新本地版本库
git diff HEAD [
…] 如果HEAD指向的是master分支,那么HEAD还可以换成master
- 比较工作区与指定commit-id的差异
git diff commit-id [
…]
- 比较暂存区与指定commit-id的差异
git diff --cached [] [
…]
- 比较两个commit-id之间的差异
git diff [] []
- 使用git diff打补丁
git diff > patch //patch的命名是随意的,不加其他参数时作用是当我们希望将我们本仓库工作区的修改拷贝一份到其他机器上使用,但是修改的文件比较多,拷贝量比较大,此时我们可以将修改的代码做成补丁,之后在其他机器上对应目录下使用 git apply patch 将补丁打上即可
git diff --cached > patch //是将我们暂存区与版本库的差异做成补丁
git diff --HEAD > patch //是将工作区与版本库的差异做成补丁
git diff Testfile > patch//将单个文件做成一个单独的补丁
- 拓展:git apply patch 应用补丁,应用补丁之前我们可以先检验一下补丁能否应用,git apply --check patch 如果没有任何输出,那么表示可以顺利接受这个补丁
- 另外可以使用git apply --reject patch将能打的补丁先打上,有冲突的会生成.rej文件,此时可以找到这些文件进行手动打补丁