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都可以,但是开头记得不能有空格