1:将工程中的所有文件增加到git暂存区:
y@y:testapp$ git add .
2:推送报以下错误:
y@y:android_test$ git push origin master Counting objects: 42, done. Delta compression using up to 4 threads. Compressing objects: 100% (27/27), done. error: insufficient permission for adding an object to repository database ./objects fatal: failed to write object error: pack-objects died of signal 13 error: 无法推送一些引用到 '[email protected]:android_test'
由于git服务端的仓库新建完成后没有修改文件拥有者为git所致:
解决方法:
root@wz:/home/git/repositories# chown git:git android_test.git/ -R
3:git fetch和pull的区别
参考:http://www.oschina.net/translate/git-fetch-and-merge
y@y:android_test$ git fetch origin
y@y:android_test$ git merge origin/master
“git fetch”命令执行完毕之后,还不会立即将下载的文件合并到你当前工作目录里,这就给你了一个选择下一步操作的机会,要是想将从远程分支下载的文件更新到你的工作目录里,你需要执行一个“合并(merge)”操作。例如,我当前的本地分支为”master“(执行git checkout master后)。
如果你只是想看看本地分支和远程分支的差异,你可以使用下面的命令:
git diff master origin/master
虽然 git pull 大部分时候是好的,特别是如果你用CVS类型的方式使用Git时,它可能正适合你。然而,如果你想用一个更地道的方式(建立很多主题分支,当你需要时随时改写本地历史,等等)使用Git,那么习惯把 git fetch 和 git merge 分开做会有很大帮助。
4:git fetch origin报以下错误
y@y:wstswgl$ git fetch origin remote: 对象计数中: 66, 完成. remote: 压缩对象中: 100% (61/61), 完成. remote: Total 66 (delta 32), reused 0 (delta 0) error: insufficient permission for adding an object to repository database .git/objects fatal: failed to write object fatal: unpack-objects failed
ll .git/查看了以下文件列表信息
y@y:wstswgl$ ll .git/ 总用量 120 drwxrwxr-x 8 y y 4096 5月 7 17:53 ./ drwxrwxr-x 11 y y 4096 4月 22 19:51 ../ drwxrwxr-x 2 y y 4096 4月 22 19:38 branches/ -rw-rw-r-- 1 y y 31 5月 7 17:51 COMMIT_EDITMSG -rw-rw-r-- 1 y y 269 4月 22 19:38 config -rw-rw-r-- 1 y y 73 4月 22 19:38 description -rw-rw-r-- 1 y y 0 5月 7 17:53 FETCH_HEAD -rw-rw-r-- 1 y y 172 4月 25 09:44 gitk.cache -rw-rw-r-- 1 y y 23 4月 22 19:38 HEAD drwxrwxr-x 2 y y 4096 4月 22 19:38 hooks/ -rw-r--r-- 1 root root 64387 5月 7 17:51 index drwxrwxr-x 2 y y 4096 4月 22 19:38 info/ drwxrwxr-x 3 y y 4096 4月 22 19:45 logs/ drwxrwxr-x 245 y y 4096 5月 7 17:53 objects/ -rw-rw-r-- 1 y y 41 4月 27 17:21 ORIG_HEAD drwxrwxr-x 5 y y 4096 4月 22 19:45 refs/
index文件属于root用户,将其修改为当前y用户
root@y:wstswgl# chown y:y .git/ -R
修改完成后,问题解决:
y@y:wstswgl$ git fetch origin remote: 对象计数中: 66, 完成. remote: 压缩对象中: 100% (61/61), 完成. remote: Total 66 (delta 32), reused 0 (delta 0) 展开对象中: 100% (66/66), 完成. 来自 192.168.0.143:/home/git/gits/wstswgl 9b7ecc4..0c563c3 master -> origin/master y@y:wstswgl$