git

来源:互联网 发布:优酷视频下载for mac 编辑:程序博客网 时间:2024/06/05 00:52

首先要了解git和svn的区别

我觉得最大的区别在于,svn没有本地版本库,而git有。



git的理念是所有的改动都在本地提交,觉得代码差不多多了,再发布到远程版本库


1. 配置本地git

 

首先在本地创建ssh key;
$ ssh-keygen -t rsa -C "your_email@youremail.com"

后面的your_email@youremail.com改为你的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。

回到github,进入Account Settings,左边选择SSH Keys,Add SSH Key,title随便填,粘贴key。为了验证是否成功,在git bash下输入:

$ ssh -T git@github.com

如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。

接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们。

$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"


进入要上传的仓库,右键git bash,添加远程地址:

git remote add origin git@github.com:defnngj/hello-world.git


4.提交、上传

接下来在本地仓库里添加一些文件,比如README,

$ git add README
$ git commit -m "first commit"

上传到github:

$ git push origin master

git push命令会将本地仓库推送到远程服务器。
git pull命令则相反。

修改完代码后,使用git status可以查看文件的差别,使用git add 添加要commit的文件,也可以用git add -i来智能添加文件。之后git commit提交本次修改,git push上传到github。


git add . 就是添加所有代码


可能出现的问题

5.3.1 问题一

执行下面语句报错

1git remote add origin git@github.com:defnngj/hello-world.git

错误提示:fatal: remote origin already exists.

解决办法:

1git remote rm origin

然后在执行:

1$ git remote add origin git@github.com:defnngj/hello-world.git

error: Could not remove config section 'remote.origin'. 我们需要修改gitconfig文件的内容

    4、找到你的github的安装路径,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc

    5、找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!

5.3.2 问题二

执行下面语句报错

1git push origin master

错误提示:error:failed to push som refs to.......

解决办法:

1$ git pull origin master //先把远程服务器github上面的文件拉先来,再push 上去。

2. 在本地修改的文件,

git commit -am 'modify ....'


3. 版本回退

这个暂时还没有理解...

  1. git reset –-mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息

  2. git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可

  3. git reset –-hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容


如果我们某次修改了某些内容,并且已经commit到本地仓库,而且已经push到远程仓库了

这种情况下,我们想把本地和远程仓库都回退到某个版本,该怎么做呢?


1, git reset –hard 版本号 
2, git push origin 分支 -f

这个操作还是慎用,版本库一旦回退,就不是我目前所能掌控的范围了。

也就是说即使是回退也是在本地代码上修改后提交,这样总能恢复到之前的任何版本,如果采用reset的方式,就彻底找不到回退点之后的信息了



git clone

 

如果你需要与他人合作一个项目,或者想要复制一个项目,看看代码,你就可以克隆那个项目。 执行 git clone [url],[url] 为你想要复制的项目,就可以了。

$ git clone git://github.com/schacon/simplegit.gitInitialized empty Git repository in /private/tmp/simplegit/.git/remote: Counting objects: 100, done.remote: Compressing objects: 100% (86/86), done.remote: Total 100 (delta 35), reused 0 (delta 0)Receiving objects: 100% (100/100), 9.51 KiB, done.Resolving deltas: 100% (35/35), done.$ cd simplegit/$ lsREADME   Rakefile lib

上述操作将复制该项目的全部记录,让你本地拥有这些。并且该操作将拷贝该项目的主分支, 使你能够查看代码,或编辑、修改。进到该目录中,你会看到 .git 子目录。 所有的项目数据都存在那里。


原创粉丝点击