A. git怎么从远程仓库拉取到本地仓库
理解 fetch 的关键, 是理解 FETCH_HEAD,FETCH_HEAD指的是: 某个branch在服务器上的最新状态’。这个列表保存在 .Git/FETCH_HEAD 文件中, 其中每一行对应于远程服务器的一个分支。
当前分支指向的FETCH_HEAD, 就是这个文件第一行对应的那个分支.
一般来说, 存在两种情况:
如果没有显式的指定远程分支, 则远程分支的master将作为默认的FETCH_HEAD.
如果指定了远程分支, 就将这个远程分支作为FETCH_HEAD.
这个操作是git pull origin branch1的第一步, 而对应的pull操作,并不会在本地创建新的branch。设定当前分支的 FETCH_HEAD' 为远程服务器的branch1分支`。
这个命令可以用来测试远程主机的远程分支branch1是否存在, 如果存在, 返回0, 如果不存在, 返回128, 抛出一个异常.
首先执行上面的fetch操作,使用远程branch1分支在本地创建branch2(但不会切换到该分支),如果本地不存在branch2分支, 则会自动创建一个新的branch2分支,
如果本地存在branch2分支, 并且是`fast forward', 则自动合并两个分支, 否则, 会阻止以上操作.
fetch更新本地仓库两种方式:
1、git reset
没有push,这种情况发生在你的本地代码仓库,可能你add ,commit 以后发现代码有点问题.
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交commit_id(),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard 。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
2、gitrevert
已经push,对于已经把代码push到线上仓库,你回退本地代码其实也想同时回退线上代码,回滚到某个指定的版本,线上,线下代码保持一致.你要用到下面的命令
git revert用一个新提交来消除一个历史提交所做的任何修改.
revert 之后你的本地代码会回滚到指定的历史版本,这时你再 git push 既可以把线上的代码更新.(这里不会像reset造成冲突的问题)
revert 使用,需要先找到你想回滚版本唯一的commit标识代码,可以用 git log 或者在adgit搭建的web环境历史提交记录里查看.
3、两者区别
git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit看似达到的效果是一样的,其实完全不同.
第一:上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突(或git push -f强制推送).但是revert 并不会.
第二:如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是revert 方向提交的commit 并不会出现在历史分支里.
第三:reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的.
B. Git如何从远程拉取最新代码,并与本地代
安装git,不同系统安装命令不同
apt-get install git
yum install git
pkg install git
...
本地创建仓库,在需要的目录执行命令
git init
不执行这个,会找不到本地仓库位置,拉取了也找不到仓库存放。
拉取仓库的代码
git pull 远程仓库地址
发送代码到远程有点复杂,不过也挺简单
发送代码的时候,本地仓库里的代码必须和远程仓库里的代码一样,因为如果不一样,那就乱套了,所以要先拉取,覆盖到本地仓库,用网页在远程仓库新增或修改文件后,需要拉取代码覆盖本地没修改的,否则远程仓库拒绝接受。
添加要发送的文件
git add 文件名称
(git add .).代表添加所有文件
添加要上传的文件之后,必须要给文件注释,否则远程仓库拒绝接收。
git commit -m "对文件的解释信息"
最后就可以发送了
git push 远程仓库地址 分支名
弄了2天才弄懂,790431300.github.io
C. 本地服务器 git 的url 怎么取得
首先先装一个git的服务器,然后在域名的ip地址就是url
D. 怎么拉取git服务器上面的分支到本机
git fetch origin branchname:branchname
可以把远程某各分支拉去到本地的branchname下,如果没有branchname,则会在本地新建branchnamegit checkout origin/remoteName -b localName
获取远程分支remoteName 到本地新分支localName,并跳到localName分支
E. 如何在mac系统下将github上的代码拉取到我自己的服务器上
以前一直听说过Github,但是自己一直不会用。最近不是太忙,于是想捣鼓捣鼓Github,没想到用了将近3个小时,才在Mac上配置成功。
首先简单介绍一下Git和Github
集中化的版本控制系统( Centralized Version Control Systems,简称 CVCS )。这类系统,诸如 CVS,Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。
分布式版本控制系统( Distributed Version Control System,简称 DVCS )。在这类系统中,像 Git,Mercurial,Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。
GitHub是一个用于使用Git版本控制系统的项目的基于互联网的存取服务。它是由GitHub公司(先前被称作用Logical Awesome)的开发者Chris Wanstrath, PJ Hyett, 和 Tom Preston-Werner 使用Ruby on Rails写成的。GitHub同时提供商业账户和为开源项目提供的免费账户。根据在2009年的Git用户调查,GitHub是最流行的Git存取站点。
它提供了像 feeds,followers 和显示开发者们怎样在他们的版本库的版本上工作的网络图表。
git是一个版本控制工具
github是一个用git做版本控制的项目托管平台。
1、下载,安装Git,注册GitHub;
从google code上可以获的Mac OS的dmg安装文件
下载地址:htt p:/ /git-osx-installer.googleco de.c om/files/git-1.7.12-intel-universal-snow-leopard.d mg
安装没有什么好说的,打开.dmg文件,然后运行.pkg文件,一步一步往后装即可。git 会被安装到/usr/local/git/bin 目录下。
注册GitHub同样非常简单,选择免费的开源账户类型,按部就班走流程即可。
(注意:Git没有图形界面,Git won't add an icon to your dock, it's not that sort of application.)
这一步骤,可以参考官方文档。链接:htt p s:/ /help.gith ub.c om/articles/set-up-git
2、配置Git(在这步花了好长时间)
首先在终端进入.ssh目录。如果你顺利进入了很好。应该是这样
$
cd ~/.ssh
$
ls //如果目录下已有文件,建立一个备份文件夹,把原有文件备份进去
$
ssh-keygen -t rsa -C "你的邮箱@xxx.com" //之后一路回车即可
但是我配置的时候一直提示 “no such file or directory”
在stackoverflow上找到了答案。
执行:mkdir ~/.ssh 就好了。
F. windows怎么获取git本地库
下载Git,从官方网站下载Git并安装,安装以后在windows 目录点右键快捷菜单会有Git相应的功能
2
进入Git Gui,配置git的用户名和邮箱
3
初始化一个Git代码库,创建一个文件夹并进入,点击右键"Git init here",然后会创建一个代码仓库
4
添加文件,任何文件都可以,git会记录文件操作的状态。 进入"Git Gui"
5
选择未缓存的改动列表,添加注释并提交改动
6
把提交的改动上传到服务器,比如github