Git使用初步
来源:互联网 发布:域名出售系统源码 编辑:程序博客网 时间:2024/04/28 05:50
首先说明一下,Git的话,用得比较少,目前版本管理用的还是SVN比较多。
不过Git感觉高大上一点,而且有很多代码托管站,因此也要学习一下。
新手,所以内容没有进行过多的考究,如有错漏,见谅。
本文会不断连载和更新,直到我认为自己已经是一个Git使用高手为止。
本文以CSDN Code和GitHub为例(主要是前者)。
并且摒弃可视化界面,全部采用命令行的形式。
目录:
(虽然做了超链接,但是csdn的转跳貌似不能本页内转跳,各位用搜索的吧)
一、 首先是安装git软件
二、 添加ssh公钥
三、 创建项目
四、 更新原有的项目(push)
五、 进行README文件的编写
六、 把项目下载到本地(clone和pull)
七、分支操作
八、 Git基本语法(待添加示例)
九九九、一些技巧
一、 首先是安装git软件
Git客户端
安装过程不多说了,windows下安装注意安装的时候会让你选择是否要覆盖find等原有的cmd命令。
如果用惯了linux的同学建议覆盖,否则就保留吧。
下文以windows为例。
二、 添加ssh公钥
双击桌面上的 “Git Bash”。
如果没有这个东东的话,自己新建一个快捷方式,
目标:"C:\Program Files\Git\git-bash.exe" --cd-to-home
起始位置:%HOMEDRIVE%%HOMEPATH%
打开命令行之后输入:
cd ~/.sshmkdir keybackupmv id_rsa* keybackup/ #备份ssh-keygen -t rsa -C "你的邮箱"
然后直接三个回车。
这里注意邮箱一定要填准了,后面要对应得上才行。
然后就会生成两个文件:id_rsa 、 id_rsa.pub
cat id_rsa.pub 得到公钥里面的内容,然后添加到CSDN Code的“用户设置--SSH公钥管理”里面。
这样,就可以提交而不用提示输入密码之类的东东了。
用过免密码登陆远程ssh的人应该都懂这个东西的。
三、 创建项目
目前,貌似,只能在csdn页面上创建项目后push上去,好像不能在本地直接创建项目后上传的。
打开csdn code的自己的首页,点击“创建新项目”
填写好信息之后就会创建一个项目了,例如我的colorPalatte项目,它的ssh地址为: git@code.csdn.net:samed/colorpalatte.git
知道这些信息之后,回到git命令行。
如果项目已经写了一些源码了,就把源码拷贝过来当前文件夹,例如:
mkdir -p /e/Git/colorPalattecp -r /someplace/colorPalatte/ /e/Git/colorPalattecd /e/Git/colorPalattegit init # 初始化项目(每个项目仅运行一次)# 配置信息(每个项目一般只运行一次,此处示例为仅本项目可用,避免存在多个托管站出现冲突的情况)git config user.name 'samed' # 引号内的内容是这次提交的人的名字,建议用你csdn的登陆用户名,这样就能关联用户信息。git config user.email 'XX@XX.com' # 和你创建rsa证书的时候的email要对应上,因为你的公钥已经发布到csdn code上了。git remote add origin git@code.csdn.net:samed/colorpalatte.git # 这里就是之前提交的ssh地址了。# 提交本地项目文件(每次提交均需要运行)git add ./git commit -m "V1.0" # 引号内是本次提交的名字(个人习惯是用版本号作为提交名字)# 上传服务器git push -u origin master # 采用origin服务器配置,提交到master分支。
最后一步可能要等一段时间,取决于你的网络环境和项目文件的大小。
提交成功后就能看到当前文件夹有个master的字眼:(因为GitHub生成分支要收钱,暂时没有钱,所以我还没有试过不是master是什么情况,有经验的老司机给指点一下)
四、 更新原有的项目(push)
接着“三”来讲,如果你已经建立过一个项目并且曾经提交过了。
那么就不用那么麻烦了。
针对新增的文件进行提交即可:(这里就不作过多的解释了)
git add ./git commit -m "V1.1"git push -u origin master
五、 进行README文件的编写
其实,这个和git没有关系了,所以不多说,知道用的是markdown的语法就行了,还有说一下csdn code 和 GitHub的区别。
在GitHub上,默认是显示README.md这个文件的。
而csdn code上,如果有README-zh.md这个文件,优先显示这个,如果没有,就显示README.md。
这个区别还是很贴心喔,赞一个,符合中国人的使用习惯。
另外,GitHub上 LINCENSE 文件是标配,所以建议把这个文件也弄上去,看起来俺们很专业。
附上常用的两个 LINCENSE 文件:
MIT LICENSE: http://download.csdn.net/detail/samed/9524141
MIT协议是最宽松的开源协议,只要说明一下是开源的OK了。
GUN LICENSE: http://download.csdn.net/detail/samed/9524148
GUN协议是是比较严格的开源协议,如果你使用了基于GUN的开源代码,则基于此的项目均需要开源。
六、 把项目下载到本地(clone和pull)
经过了四的步骤,知道了怎么更新本地代码到托管库,那么怎么下载回来呢?
这个步骤经常发生在新的电脑、或者“家里”的电脑进行操作。
有两种办法:
6.1、 全新项目
一个命令就好了:git clone 项目的https地址
举例,还是按照俺的colorPalatte项目,两个地址分别是:
SSH:git@code.csdn.net:samed/colorpalatte.git
HTTPS:https://code.csdn.net/samed/colorpalatte.git
所以使用这个命令 “git clone https://code.csdn.net/samed/colorpalatte.git” 将会在当前目录下新建一个 colorPalatte 文件夹,并且把项目文件都下载下来。
如果仅仅是下载,那么这样就完了,如果是后面要上传的,那么还需要设置一下user.name、user.email、remote等(参考6.2)
6.2、 已经存在的项目
如果已经配置过了,那就是一个命令:git pull 库SSH地址 分支名
举例,已经配置了SSH地址是 origin ,分支是master,那么就是:“git pull origin master”
如果不知道咋配置,可以参考一下“四、 更新原有的项目(push)”的内容,照顾新手罗嗦一下:
git config user.name 'samed'
git config user.email 'XX@XX.com'
git remote add origin git@code.csdn.net:samed/colorpalatte.git
另外,其实用这种方法也可以建立全新项目,先建立一个同名目录,然后进入目录git init一下,在按照上面三行设置一下,就可以pull全部文件到本地了。
七、分支操作
实际开发过程中,需要经常添加分支(目前github免费用户不能添加分支),因为针对当前版本的功能,需要先经过检验测试之后才能投入生产。
所以新建分支,然后经过验证之后再合并分支,是最正常的做法了。
7.1 创建分支(步骤)
7.2 合并到主分支(步骤)
- 列举当前所有分支:git branch
- 创建分支(假设名称为2.0):git branch 2.0
- 切换到分支:git checkout 2.0
- 切换到主分支:git checkout master
- 合并:git merge 2.0
- 删除已经合并的分支:git branch -d 2.0 #注意,-d参数要求已经合并之后的分支才能删除,如果没有合并,使用-D参数强制删除
7.3 删除远程分支(方法列表)
7.5 下载远程分支(方法列表)
- git push origin :<branchName>
- git push origin --delete <branchName> # 此为git1.7.0之后的版本才有
7.6 强制将远程分支覆盖到本地(步骤)
- 直接新增的话:git clone -b <branchName> <git_(http/ssh)_url> # 注意了,只下载这个分支而不下载master
- 在已有的git项目中下载:git fetch origin <branchName>:<branchName> # 第一个branchName表示远程分支名字,第二个表示在本地建一个分支的名字。
- git checkout <branchName> # 良好习惯,先切换到本地同名分支
- git fetch --all
- git reset --hard origin/<branchName> # 此时已经下载文件了
- git pull # 此步骤如果是在master分支下操作,则会进行merge操作。
八、 Git基本语法(待添加示例)
九九九、一些技巧
1. 打包新文件
因为git是支持本地提交,本地管理版本库的,因此有可能本地版本修改了之后需要同步到现网环境去,那么要怎么打包这些更新了之后的文件呢?
用一句话就ok了:(当然,要进到项目当前目录下面)
git status -s | awk 'BEGIN{a=""}{a=a" "$2}END{print a}' | xargs -i echo "tar czvf 123.tar.gz {}" |sh
好了,今天先讲这么多。
---------------------
参考文献:
1. CSDN HELP
- git的初步使用
- git 使用初步
- git初步使用总结
- Git使用初步
- Git使用初步2
- git初步使用
- git初步使用
- git初步使用
- GIT使用初步指南
- Git使用初步
- git初步使用
- GIT的初步使用
- git 使用初步
- git初步使用
- git初步使用
- 初步使用git
- git初步使用笔记
- git 和 github 使用 初步
- iOS 视图UIview属性介绍 以及视图层次方法
- ReactiveCocoa
- 在JAVA中使用脚本引擎
- ORACLE插入日期数据
- 星型模型&& 雪花模型
- Git使用初步
- angularjs中的$watch
- 极光推送服务端向手机app即时推送消息或通知
- 我们究竟如何判断一个想法值不值得做呢?IOS开发
- NYOJ 119 士兵杀敌(RMQ)
- RPC学习了解
- $watch How the $apply Runs a $digest
- MYSQL 日期格式
- Java之InetAddress类