GIT操作笔记

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: 无法推送一些引用到 'git@192.168.0.143: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$ 
原文地址:https://www.cnblogs.com/yshyee/p/4288944.html