1 常用命令
首先进入自己的工作目录cd d:/…
git clone <url> //克隆一个项目到本地
git branch //显示所有分支
git checkout master //切换到主分支
git remote update //获取更新
git pull //更新当前分支下的文件
git pull origin master //更新主分支
git merge master //合并主分支
git status //查看更改过的文件
git add <file> //要提交的文件目录,也可以提交单个文件
git add . //提交所有更改过的文件
git commit -sm "note" //备注提交的文件信息
git push origin develop //提交develop分支所要提交的文件也为master主分支
git branch test //新建分支test
git reset --hard commitid //回退到某一版本
git revert commitid //撤销指定的版本,撤销也会作为一次提交进行保存
git log //查看log
git log <file> //查看文件提交记录
git log -p <file> //查看文件修改记录
git blame <file> //查看文件每一行修改记录
gitk --follow <file> //图形界面查看文件修改记录
2 配置用户名/邮箱
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
3 SSH的配置
如果安装了Github客户端,GitHub客户端会自动的配置SSH。下面我们来说一下自己配置SSH,首先单击鼠标右键,打开Git Bash here,打开Git命令窗口,输入命令
ssh-keygen -t rsa -C "your_email@youremail.com"
这个时候我们看到询问我们保存key的路径,使用默认即可,直接敲回车继续,回车后会让输入两次密码(passphrase),输入一个大于4位的密码即可。然后会看到SSH生成成功
这里可以看到,我们的公钥保存到了yunfeifei_rsa.pub文件中,大家用的是默认路径的话,就打开路径C:\Users\Admin.ssh
用文本编辑工具如记事本打开id_rsa.pub,复制里面的内容,先保存起来,到后面使用
添加完成后,我们打开Git命令窗口测试,输入如下命令
ssh -T git@git.coding.net
4 上传本地项目到Coding.net
先要到项目文件夹中
git init
git add .
git commit -m "first commit"
git remote add origin git@github.com:dengzhaotai/vlc_play.git
git pull --rebase origin master
git push -u origin master
如果显示warning: LF will be replaced by CRLF in XXXXXXXXXXXXXX,可以设置
git config core.autocrlf false
显示形如274\232\350\256\256\346\200\273\347\273\223.png的乱码,可以设置
git config --global core.quotepath false
5 强制推送
先把本地缓存删除(改变成未track状态),然后再提交
git rm -r --cached .
git add .
git commit -sm 'commit log info'
6 OpenWrt代码提交步骤
./scripts/cleanfile ./package/minigui/filename //检查代码风格,每个修改的文件都要检查
repo sync //同步代码,git chenout -- <file>可以忽略文件修改
git add minigui/ //提交minigui目录下的修改文件
git commit -s //添加提交注释
git commit --amend //保持commit信息中的Change-Id不变,提交即可覆盖
repo upload //上传代码
7 制作和应用补丁
git format-patch -1 commitid //制作一个patch
git diff old new > xxx.patch //比较文件或文件夹制作patch
git apply --stat newpatch.patch //检查patch文件
git apply --check newpatch.patch //检查能否应用成功
git apply newpatch.patch //打上一个补丁
git am *.patch //批量打补丁
8 合并commit
首先看一下提交信息
我们想要合并10c0136与670e37d这两个提交,需要执行
git rebase -i beb2d66 //beb2d66是所有需要合并的commit的前一个commit
之后出现配置界面,根据说明修改
pick:保留该commit(缩写:p)
reword:保留该commit,需要修改该commit的注释(缩写:r)
edit:保留该commit, 要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash:将该commit和前一个commit合并(缩写:s)
fixup:将该commit和前一个commit合并,但不要保留该提交的注释信息(缩写:f)
exec:执行shell命令(缩写:x)
drop:丢弃该commit(缩写:d)
即修改成下图样子,然后执行:wq保存退出
之后会出现修改commit界面,修改完成之后执行:wq保存退出,至此合并commit流程结束
9 其他命令
./linux-4.9/scripts/checkpatch.pl zzz.patch > xxx //内核代码patch风格检查,-f可以检查文件
./linux-4.9/scripts/checkpatch.pl -f --fix-inplace xx.c //自动修改内核代码风格
./linux-4.9/scripts/Lindent *.c //自动修改内核代码风格