如何从远程git服务器上拉取一个新建的git项目?
创建本地仓库并同步到远程
git是非常强大的版本管理工具。接下来的时间里,我就和大家絮叨絮叨git的入门:如何在本地创建一个git仓库,并把自己的本地代码同步到远程。此教程是在mac上操作的,如果您的系统是Linux,那么操作方法相同;如果您的系统是windows,那么,只需要把git的bash窗口调出来,以后的过程也都与Linux相同。
一、首先,您需要安装git,此步就忽略了,自行安装即可。
二、假设你目前还没有创建一个工作目录,那么,先创建一个目录吧,就叫StudyGit。
三、现在的StudyGit目录还只是一个本地目录,和git没有任何关联,那么,我们怎么样才能把这个目录和git关联起来呢?只需要进入StudyGit目录,运行如下命令:
yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git initInitialized empty Git repository in /Users/yanyaozhen/Coding/Practice/StudyGit/git/
提示已经说明我们初始化了一个空的本地git仓库。如果你查看StudyGit下的所有文件时,会发现一个git 的隐藏文件,这个文件非常重要,版本的控制就靠它了。
四、接下来我们来看一个基本可以说是用的最频繁的一个命令:
yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git status五、现在让我们来创建一个文件吧。我们创建一个叫“atxt”的文本文件,并且内容如下
anyaozhen@macbookpro:~/Coding/Practice/StudyGit$ cat atxt第一步,在服务器上创建git专用的用户
# 创建 git 用户
useradd git
# 设置密码
passwd git
# 创建 git 组
groupadd git
# 将 git 用户添加到 git 组
usermod -a -G git git
第二步,创建仓库目录并授权
# 创建仓库所在目录,需要使用 root 权限
sudo mkdir /opt/git
# 设置组内读写权限
sudo chmod 775 /opt/git
# 将仓库所在目录拥有组改为 git
sudo chgrp -R git /opt/git
第三步,配置免密登录 ssh
# 在客户端电脑上命令行执行,windows系统可以使用 git bash(安装git的时候自带的)
ssh-keygen -t rsa
# 一路回车,生成公钥,查看公钥内容(在当前用户目录下有个隐藏目录ssh)
cat ~/ssh/id_rsapub
将内容复制
# 将内容复制,服务器端切换到 git 用户
su git
# 回到用户home目录
cd ~
# 创建 ~/ssh 并授权,保险起见,我们以下都使用绝对路径
mkdir ~/ssh && chmod 700 ~/ssh
touch ~/ssh/authorized_keys && chmod 600 ~/ssh/authorized_keys
# 编辑 authorized_keys文件
# 将刚刚复制的公钥内容粘贴(vim 命令: i 进入编辑模式,esc回到命令模式,:wq 保存并退出)
vim ~/ssh/authorized_keys
第四步,添加新的项目到git中央仓库
# 进行你的项目所在目录
cd myproject
# git 初始化
git init
# 将当前目录及所有子目录添加到暂存区
git add
# 将暂存区的内容全部提交到本地仓库
git commit -m ‘initial commit’
# 添加到远程git仓库,名称为 myproject
git remote add origin git@gitserver:/opt/git/myprojectgit
# push本地仓库内容到远程仓库
git push origin master
搞定!!!
# 添加完成之后其他人就可以通过git clone来克隆此仓库和push改动了
git clone git@gitserver:/opt/git/myprojectgit
cd myproject
vim README
git commit -am ‘fix for the README file’
git push origin master
代码提交
代码提交一般有五个步骤:
1查看目前代码的修改状态
2查看代码修改内容
3暂存需要提交的文件
4提交已暂存的文件
5同步到服务器
1 查看目前代码的修改状态
提交代码之前,首先应该检查目前所做的修改,运行git status命令
a) 已暂存 (changes to be committed)
new file //表示新建文件
modified //表示修改文件
deleted //表示删除文件
b) 已修改 (changed but not updated)
modified //表示修改文件
deleted //表示删除文件
另外,git 给出了可能需要的操作命令,git add/rm, gitcheckout --
c) 未跟踪 (untracked files)
2 查看代码修改的内容
git diff <file>
比较某文件与最近提交节点的差异。
注意:如果该文件已暂存,那么应该使用git diff –cached<file>
git diff <hashcode> <hashcode> <file>
比较某文件在提交节点a,节点b的差异。
技巧:如果省略后面一个hashcode,则默认表示与上一提交节点比较。(也可以利用^运算符)
3 暂存需要提交的文件
如果是新建的文件
则git add <file>
如果是修改的文件
则git add <file>
如果是删除的文件
则 git rm <file>
4 提交已暂存的文件
git commit
注意注释填写规范。
git commit --amend
修改最近一次提交。有时候如果提交注释书写有误或者漏提文件,可以使用此命令。
5 同步到服务器
同步到服务器前先需要将服务器代码同步到本地
命令: git pull
如果执行失败,就按照提示还原有冲突的文件,然后再次尝试同步。
命令:git checkout -- <有冲突的文件路径>
同步到服务器
命令: git push origin <本地分支名>
如果执行失败,一般是没有将服务器代码同步到本地导致的,先执行上面的git pull命令。
Git 可以使用四种主要的协议来传输数据:本地传输,SSH 协议,Git 协议和 HTTP 协议。
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git的主要功能:
1 检查电子邮件或其他方式来检查提交状态的平均开发人员。
2 修补程序并解决冲突(您自己或要求开发人员稍后重新提交它,如果它是一个开源项目,请确定哪些修补程序可以工作,哪些不能)。
3将结果提交到公共服务器,然后通知所有开发人员。
扩展资料:
Git的优缺点:
优点:
1 适合分布式开发,强调个人。
2 公共服务器压力和数据量不是太大。
3快速和灵活。
4任何两个开发人员之间的冲突都可以很容易地解决。
5 离线工作。
缺点:
1 数据很少(至少是中文)。
2 学习周期相对较长。
3不符合传统思维。
4 可怜的代码的机密性。一旦开发人员克隆了整个库,所有代码和版本信息都可以完全公开。
0条评论