git

git commit

git commit -s
提交的信息中带有signed-off-by:

git log

git log filename/dir
查看某个文件/目录的历史

git log –stat
显示当前commit在上一次commit基础上修改了哪些文件及行数等信息。

git log -p
显示当前commit在上一次commit基础上修改的文件的内容

git log –pretty=oneline
查看历史,并且每个历史只显示一行

git log –author=””
查看某个作者提交的历史


git show

git show commit_number
查看某次提交的修改,会以详细的信息显示提交的差异

git show commit_number –stat
查看某次提交的修改,显示改动的文件及基本的信息


git diff

git diff commitA commitB 显示commitA需要做哪些修改才能到commitB
git diff commitA HEAD filename 查看两次commit之间的某个文件的修改
git diff –stat commitA commitB 查看两次提交之间有哪些文件差异
git diff HEAD~ –stat 查看HEAD与前一次commit之间有哪些文件差异
git diff HEAD~ filename 查看HEAD与前一次commit之间filename文件的差异


git stash

git stash 放进暂存区
git stash list 列出暂存区的文件
git stash pop 取出最新的一笔,并从暂存区中移除
git stash apply 取出但不移除
git stash clear 清除暂存区


git clean

-f和-d选项分别删除untracked files和目录


git push

git push origin
origin是远程主机


git rebase修改历史commit信息

1\ 对于最后一次commit信息的修改很简单,git commit -amend进入编辑界面之后直接修改信息就可以了

2\ 对于历史commit信息的修改,就必须要使用git rebase了,
git rebase -i HEAD~3,表示要修改当前版本的倒数第3次状态。
这个命令执行之后,会出来3行,
pick: **
pick: **
pick: **
如果你要修改哪个,就把那行的pick改成edit,然后退出,
这时通过git log你可发现,git的最后一次提交已经变成了你选的那个了,这时再通过git commit -amend来对commit进行修改,修改完了之后,
修改了之后要回来,使用git rebase —continue
ok了


git生成patch与打patch

git format-patch与git am搭配使用
git diff与git apply搭配使用

两个节点之间的提交: git format-patch 节点A 节点B
单个节点: git format-patch -1 节点A (-n就表示要生成几个节点的提交)
最近一次提交节点的patch :git format-patch HEAD^ 依次类推……


git配置

1)通过git config配置
查看已经设置的配置
git config –list
使用默认颜色配置
git config –global color.status auto
git config –global color.diff auto
git config –global color.branch auto
默认编辑器设置
git config –global core.editor vim
其实以上这些设置之后会保存在文件~/.gitconfig中

2)修改配置文件~/.gitconfig或者git分支中的.git/config文件,修改完后不用重启,直接生效。
[user]
name = xxx
email = xxx
例如,让git默认使用vim编辑器
[core]
editor = vim
例如,设置git颜色
[color]
status = auto
branch = auto
diff = auto


其他

1、修改文件名最好用git mv filename1 filename2
2、删除文件最好用git rm filename
3、git fetch + git merge = git pull(如果git merge遇到冲突如何处理?)
一种情况是你对一个正在修改代码的的分支执行git pull操作,结果提示:
error: Your local changes to ‘c/environ.c’ would be overwritten by merge. Aborting.
Please, commit your changes or stash them before you can merge.

意思是说merge更新下来的内容会把本地修改的内容覆盖,先提交你的改变或者先将本地修改暂存起来。(因为不管是git pull还是git merge都需要保证工作目录树是干净的)
1)先将本地修改暂存起来
git stash
这样本地的所有修改就都被暂存起来,用git stash list可以看到保存的信息:
stash@{0}: WIP on master: a80c24d …
stash@{0}就是刚才保存的标记

2)暂存了本地修改之后,就可以pull了
git pull

3)还原暂存的内容
git stash pop stash@{0}
系统提示类似的信息:
Auto-merging c/environ.c
CONFLICT (content): Merge conflict in c/environ.c
意思是系统自动合并并修改的内容,但是其中有冲突,需要解决其中的冲突。

4)解决完冲突后就可以正常的提交

另外,合并冲突参考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375840202368c74be33fbd884e71b570f2cc3c0d1dcf000

4、对于服务器上没有审核的代码如果想拉下来实验,可以这样:git fetch ssh://lei_wang@pcbugit2.realsil.com.cn:29418/rlxlinux/kernel refs/changes/42/1342/2 && git checkout FETCH_HEAD

将会进入一个新的分支,你可以在这个分支上做任何修改而不会影响到其他的分支,一旦实验ok,也可以通过这个分支新建一个分支。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luckywang1103

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值