工作中管理代码常用的git命令

  • 配置用户名与邮箱

    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 回退暂存区里的文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值