some git skills

1.buildroot是以tag来从远程仓库抓取数据的;
2.checkout到对应的远程分支(本地分支名称与远程分支一致)
git checkout JZ_M3721_PDK2.4.0-20180726B
3.新建tag并更新到远程仓库
git tag JZ_M3721_2.4.L7.4.0-20180724-20181112
git push origin JZ_M3721_2.4.L7.4.0-20180724-20181112
3.更新本地branch到远程仓库
git push origin JZ_M3721_PDK2.4.0-20180726B

查看本地仓库tag
git tag -l "*JZ*"

获取两版commit的修改文件对比:
git archive f10c8db82df54374b09c498c4fb0517f63cd24c1 | gzip > ben_test_n.tar.gz
git archive a1ffaa6548a1fd504634769dc639e5b39a77b419 | gzip > old.tar.gz

使用git checkout tag即可切换到指定tag,例如:git checkout v0.1.0

切换到tag历史记录 会使当前指针处在分离头指针状态,这个时候的修改是很危险的,在切换回主线时如果没有合并,
之前的修改提交基本都会丢失,如果需要修改可以尝试git checkout -b branch tag创建一个基于指定tag的分支,例
如:git checkout -b test v0.1.0 这个时候就在这个test分支上进行开发,之后可以切换到主线合并。

注意这时候的test分支的代码很多都是tag版本处的,但是test分支head节点在最前面,这时候切换到主线进行合并,
要注意合并后的代码冲突问题,不要让旧代码覆盖了主线的新代码。

1. 导出最后一次提交修改过的文件;这条命令将把近期提交的修改过的文件导出到一个zip文件。
git archive -o ../updated.zip HEAD $(git diff --name-only HEAD^)

2.导出两次提交之间修改过的文件
git archive -o ../latest.zip NEW_COMMIT_ID_HERE $(git diff --name-only OLD_COMMIT_ID_HERE NEW_COMMIT_ID_HERE) 

将本地修改同步到远程仓库:
git remote show    //查看远程仓库名称
git remote show origin(远程仓库一般是这个名字)    //查看远程仓库中的branch
//修改文件,并将修改提交到本地仓库
git commit -a -m "jz_alistarter_osd_issue"
//将修改同步到远程仓库
git push origin branch_BL4.2.1-20180727A 
//此时查看branch
git log

推送本地branch到远程仓库,此时JZ_M3721_7.4.0.38 branch就已经更新了,可以在下面网址看到push的内容:
git add linux/alisee/alisee.mk
git commit -m "update alisee version"
git push origin JZ_M3721_7.4.0.38

强制抓取git仓库branch的数据,branch_name为需要抓取的分支名称:
git fetch --all
git reset --hard origin/branch_name
或者强制拉取commit的数据
git reset --hard 3b2cbd856874a685d67216086233b9454ee84f27
git pull

从远端仓库更新数据到本地:
git fetch origin 抓取最新的数据
git checkout branch 切换到branch,如果branch数据有更新git会提示;
git pull 拿取branch数据


git archive -o ../latest.zip 509a64c426ef9035880ba314e6405458f87409aa $(git diff --name-only b06409efb5bc3793e019d6ba63c6351dae999879 509a64c426ef9035880ba314e6405458f87409aa) 

删除远程分支:
$ git push origin --delete <branchName>
删除tag这么用:
$ git push origin --delete tag <tagname>

删除本地tag
git tag -d <tagname>

git checkout commit_id 这样会切换到这个commit_id的上,文件的内容就是这个commit保存的内容。
git checkout -b new_branch_name commit_id以commit_id的状态,新建一个分支。
这两个方法都可以找到原来某状态下的任意一个文件,同时不用修改commit历史。

git archive -o ../aui-castpal-irdeto-3721-20190308-latest.zip e9f0734d3641c9058b0babafcd3df519099ad286 $(git diff --name-only 5575eb884bf5c5bb0aec92e3ded2ebf132f9bdac e9f0734d3641c9058b0babafcd3df519099ad286) 

git push <远程主机名> <本地分支名>  <远程分支名>

github clone 指定的tag
git clone --branch [tags标签] [git地址]
使用branch参数,后面加上tag标签,最后是git仓库的地址
例如:抓取tag为JZ-M3721-PDK2.4.0-20180727-20190228的alisee
git clone git@zhsa01:stu-pdk/tds-see.git --branch JZ-M3721-PDK2.4.0-20180727-20190228

git clone git@zhsa01:stu-pdk/tds-see.git --branch PDK2.4.0-20190508
git clone git@zhsa01:stu-pdk/linux-kernel-4.4.git --branch PDK2.4.0-20190508

1. 在git操作的根目录(即最高一级可以使用git命令的仓库) 建立一个名为.gitignore的隐藏文件
2. 将希望忽略的文件/文件夹加入到.gitignore文件中,使用vi/vim都可以,但是开头记得不能有空格


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值