以fl2440项目为例
1.在码云上先创建一个fl2440项目
2.将码云上的项目克隆到本地
[wangtao@centos6_master ~]$ git clone git@gitee.com:TAlice/fl2440.git
[wangtao@centos6_master ~]$ ls
fl2440
[wangtao@centos6_master ~]$ cd fl2440
[wangtao@centos6_master fl2440]$ mkdir -p {crosstool,bootloader,linux/{kernel,rootfs},driver,3rdparty,program,images}
[wangtao@centos6_master fl2440]$ ls
3rdparty bootloader crosstool driver images linux program
3.本地创建文件并提交服务器
A:git管理 (提交分三步①②③) // 注意: git不能管理空文件夹,只能管理文件
[wangtao@centos6_master fl2440]$ cd crosstool/
[wangtao@centos6_master crosstool]$ vim build.sh //编写一个shell脚本,使得crosstool文件夹不为空
....
[wangtao@centos6_master fl2440]$ git add crosstool/ //将文件提交到本地的.git文件夹下 --- ①
[wangtao@centos6_master fl2440]$ git commit -m"Add crosstool build shell script" --- ②
[master d93acd3] Add crosstool build shell script
1 files changed, 12 insertions(+), 0 deletions(-)
create mode 100755 crosstool/build.sh
[wangtao@centos6_master fl2440]$ git push //将改好的本地文件(.git文件夹)推送至码云 ③
Counting objects: 5, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 571 bytes, done.
Total 4 (delta 1), reused 0 (delta 0)
To git@gitee.com:TAlice/fl2440.git
cce8b3d..d93acd3 master -> master
!!注意:如果git push推送时出现【fatal: The remote end hung up unexpectedly】,这是因为推送的文件过大,我们可以 在.git/config配置文件中(用vim打开)添加:
[http]
postBuffer = 524288000 // 修改提交缓存大小为500M,注意postBuffer前为【TAB】键
[wangtao@centos6_master fl2440]$ git diff //查看当前版本与上一个版本有什么差异
[wangtao@centos6_master fl2440]$ git checkout . // 文件删除后同步到当前目录下,注意不要忽略有一个点
[wangtao@centos6_master fl2440]$ git pull //将码云上的内容同步至本地
git pull只是让本地版本与码云版本同步,如果本地文件被删除了,git pull命令并不能恢复,只能用git checkout . 恢复
git rm --cached filename/-r directory //git托管将码云上的文件或文件夹删除的三步操作
git commit "xxxx"
git push
B:svn管理 (提交分两步①②)
[wangtao@centos6_master fl2440]$ svn add crosstool/ ----------------- ①
A crosstool
A crosstool/build.sh
[wangtao@centos6_master fl2440]$ svn ci -m"Add crosstool build shell script" ------------------②
Adding crosstool
Adding crosstool/build.sh
Transmitting file data .
Committed revision 2.
[wangtao@centos6_master fl2440]$ svn diff //查看当前版本与上一个版本有什么差异
[wangtao@centos6_master fl2440]$ svn up //本地文件删除后同步
[wangtao@centos6_master fl2440]$ svn rm bootloader/ //将码云上的bootloader文件夹及其内容删除
[wangtao@centos6_master fl2440]$ svn log //查看版本修改提交记录
[wangtao@centos6_master fl2440]$ svn up -r 2 //同步码云上的第二个版本到本地
svn在每一个本地目录下都有一个.svn的隐藏文件夹
git只在本地顶层目录下有一个.git的隐藏文件夹
问:Linux下如何删除github库中的一个文件
答:分四步
①,$ git pull origin master 将远程仓库里面的项目拉下来
②,$ git rm -r --cached target 删除target文件夹
③,$ git commit -m "删除了target" 提交添加操作说明
④,$ git push -u origin master 将本次更改更新到github项目上去
本地项目中的target文件夹不受操作影响,删除的只是远程仓库中的target, 可放心删除
问:Linux下如何删除github库中的一个文件的提交记录(版本回退)
答:分三步
①,$ git log 获取提交的历史找到需要回滚到的提交点
②,$ git reset --hard 94a4c3cbf4c82daae2b1e03fa2aec66f3bf4c6f7 消除这条记录之后的所有提交记录
③,$ git push origin HEAD –force 刷新