Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25242
  • 博文数量: 12
  • 博客积分: 215
  • 博客等级: 二等列兵
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-12 10:23
文章分类

全部博文(12)

文章存档

2015年(1)

2010年(11)

我的朋友
最近访客

分类: Android平台

2015-04-16 22:35:48

it忽略一些文件、文件夹不提交 在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如

 /out
*.o
*.o.cmd

---------------------------------------------------------------------------------------------------------------------------------------------------

git remote -v                         # 查看远程服务器地址和仓库名称

git remote show origin        #此命令还会告诉 我们 运行 git push 时缺省推送的分支是什么。

git log                                   #查看上传记录。

git log --graph                     #图型方式查看

git show                       #查看某个提交的详细修改。

---------------------------------------------------------------------------------------------------------------------------------------------------
创建一个远程
      本机IP:192.168.2.117,用户名:lizhihong 等,包括git ,wsy等用户名。
      a:    使用SSH协议 创建一个本地git仓库

             mkdir test_jni
             cd test_jni
             git init
                    回显 Initialized empty Git repository in /home/lizhihong/test_jnit/.git/
                        在初始化远程仓库时最好使用 git --bare init   而不要使用:git init            
             git add .
             git commit -m   "version begin"
             git remote add origin ssh:// 本机IP /~/test_jni/.git
                     这时候 , 本地的 .git/config 应该会改变
                    当出现BUG:fatal: remote origin already exists.时
                     git remote rm origin
             git push origin master
             

            在其他电脑(下面的三个命令都在192.168.2.108,用户名为suixin,的电脑上实现)clone 仓库,下面这两个命令都可以,一样的效果。
            git clone ssh://192.168.2.117 /home/lizhihong/x/me/test_jni/ .git
            git clone ssh://192.168.2.117 /home/lizhihong/x/me/test_jni                             #这两个以ssh为用户名的,在后续操作的时候都以192.168.2.108的suixin为登陆名。
            这里要详细的描述一下过程,前面的两个命令在刚开始时都能通过,但服务器(192.168.2.117) 重启一下后,这两个命令都产生一个错误:
                        fatal: repository 'git@192.168.2.117/home/lizhihong/x/me/test_jni/.git' does not exist
            经过用ssh登陆一下117这台电脑,修改成下面的命令又可以了。
             g it clone git@192.168.2.117:/home/lizhihong/x/me/test_jni                             #这个以git为用户名的,在后续操作的时候都以git为登陆名。

            注意,在192.168.2.117的电脑上要创建相应用户。 并且其用户在相应的目录下要有读写权限,否则客户端上传不了。
                最好用下面的命令全部设置一下权限。 -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
                sudo chmod -R 777 ./*        
                   注意:在有提交时.git下的目录可能发生变化,新生成的文件夹可能权限不够。 所以要经常排查一下它。

            这个clone是使用ssh远程克隆的,所以权限(.git目录和.git目录下的文件都要有所有的权限)可以的话,就可以提交代码到远程仓库上去,
             因为ssh是一个可以读写的协议 ;而如果使用http或者git协议,直接 git clone git://— ,就是一个只读的拷贝,无法提交代码的
 
--------------------------------------------------------------------------------------------------------------------------------------------------

从Git 版本库的初始化,通常有两种方式:

1)git clone:这是一种较为简单的初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份

例如:git  clone  git://github.com/someone/some_project.git   some_project 

上面的命令就是将'git://github.com/someone/some_project.git'这个URL地址的远程版本库,完全克隆到本地some_project目录下


2)git init 和 git remote:这种方式稍微复杂一些,当你本地创建了一个工作目录,你可以进入这个目录,使用'git init'命令进行初始化;Git以后就会对该目录下的文件进行版本控制,这时候如果你需要将它放到远程服务器上,可以在远程服务器上创建一个目录,并把 可访问的URL记录下来,此时你就可以利用'git remote add'命令来增加一个远程服务器端,

例如:git  remote  add  origin  git://github.com/someone/another_project.git

上面的命令就会增加URL地址为'git: //github.com/someone/another_project.git',名称为origin的远程服务器,以后提交代码的时候只需要使用 origin别名即可

---------------------------------------------------------------------------------------------------------------------------------------------------

查看当前用户信息,即通过git config配置的信息

vim ~/.gitconfig

--------------------------------------------------------------------------------------------------------------------------------------------------

较详细的blog

http://blog.chinaunix.net/uid-9525959-id-3243677.html

http://www.ruanyifeng.com/blog/2014/06/git_remote.html

--------------------------------------------------------------------------------------------------------------------------------------------------

提交

git commit 与 git commit -a

            git commit 提交的是暂存区里面的内容,也就是 Changes to be committed 中的文件。

            git commit -a 除了将暂存区里的文件提交外,还提交 Changes bu not updated 中的文件。

              如果直接运行 git commit (-a) 则会默认使用 vi 添加描述。也可以使用 git config --global core.editor 命令更改为你喜欢的编辑器。还有一个方法就是使用 -m 选项直接添加提交信息。

      git commit -a -m "commit info"
              修改/取消

                    有时候我们会发现有几个文件漏了提交或者想修改一下提交信息,又或者忘记使用 -a 选项导致一些文件没有被提交,我们希望对上一次提交进行修改,或者说取消上一次提交,这                            时候我 们需要使用 --amend 选项。

      git commit --amend
            git push origin
                    当出现       remote: error: refusing to update checked out branch: refs/heads/master   bug时  


                    这是由于git默认拒绝了push操作,需要进行设置,修改.git/config添加如下代码:

                    [receive]
                    denyCurrentBranch = ignore

                    在初始化远程仓库时最好使用 git --bare init   而不要使用:git init

               

                有时客户端push到服务器origin分支上时,如果服务器正在origin分支上,会出现服务器上的文件暂时看不能看到更新。

                如果使用了git init初始化,则远程仓库的目录下,也包含work tree,当本地仓库向远程仓库push时, 

                如果远程仓库正在push的分支上(如果当时不在push的分支,就没有问题), 那么push后的结果不会反应在work tree上,  也即在远程仓库的目录下对应的文件还是之前的内容,

                必须得使git reset --hard才能看到push后的内容.


--------------------------------------------------------------------------------------------------------------------------------------------------
阅读(723) | 评论(0) | 转发(0) |
0

上一篇:ubuntu 10.04使用笔记

下一篇:没有了

给主人留下些什么吧!~~