前言
刚开始接触Git的时候,网上会搜索到很多的资料,但是我经常会在这里找一个命令,还有可能在另一个地方再去找一个命令的使用。而且平时开发过程中用到的命令可能下次再想使用就忘记了,放在磁盘里又容易丢,所以干脆一不做二不休,好记性不如烂笔头,收集了平时开发过程中常用到的一些命令记录下来。ps:若有错误的地方或者更好的方式欢迎指出,大家一起学习(持续更新)。
git和github
先来说说git个github吧
git是一款免费、开源的分布式版本控制系统。而Github应该说是一家公司,主要提供基于git的版本托管的服务,GitHub 上托管的项目的代码是基于 Git 来进行版本控制的,所以 Git是 GitHub 上用来管理项目的一个工具。所以,使用git进行版本控制的两个前提是需要下载git:git下载地址 以及注册github账号:github官网 。当然,只要有git,我们也可以将代码上传至coding.net或者公司内部服务器上面。这个后面再说。
git的使用
首先要初始化git 使用
git init
之后在本地版本库中会成成.git文件夹(注意此文件夹是隐藏文件,如果看不到也没关系,只要成功初始化就行)
git的基本命令
git clone
git clone 远程仓库地址,将远程分之克隆到本地,进行开发
git add
用于把我们要提交的文件的信息添加到索引库中
git commit
提交当前工作空间的修改内容
git push
将要提交的内容提交到远程仓库
git pull
取回远程主机某一个分支上的更新,然后与本地的指定分支合并,如有冲突 ,则需要进行merge操作
git fetch
取回更新,不merge
git pull和git fetch的区别
git pull
git pull origin master 从远程获取最新版本并merge到本地
git fetch
git fetch origin master 从远程的origin的master主分支下载最新的版本到origin/master分支上
git log -p master..origin/master 查看更新
git merge origin/master 合并分之
与
git pull
相比git fetch
更安全一些。因为在merge前,我们可以查看更新情况,然后再决定是否合并
使用submodule管理项目
添加
使用
git submodule add
仓库地址 路径
删除
首先在项目根目录下的“.gitmodules”文件中删除相应配置信息。然后,执行
git rm –cached
命令将子模块所在的文件从git中删除。
更新
使用 git clone克隆下来的时候,submodule里面的内容不会更新下来。这个时候使用
git submodule update --init --recursive
命令 就可以将submodule里面的内容下载下来
使用git免输密码
在 C:\Documents and Settings\Administrator 下建立文件 .git-credentials,输入以下内容:https://{username}:{password}@github.com,然后输入
git config --global credential.helper store
git修改远程仓库地址
直接修改
git remote origin set-url [url]
先删后加
git remote rm origin
git remote add origin
git一次将子目录代码pull下来
git submodule foreach git pull origin master
git添加远程仓库
git remote add origin [remote url]
git push 时提示:无法推送一些引用到 >git@github.com:GarfieldEr007/XXXX.git'
git fetch origin
然后再使用git push
Git忽略规则及.gitignore规则不生效的解决办法
有时候在项目开发过程中突然想修改
.gitignore
文件的时候,删除之后新增一个.gitignore
可能没有效果,这个时候是因为本地仓库中还有缓存,所以要先清除缓存,使用下面三个命令即可。
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
github提交merge请求
fork别人项目之后,修改过 有时候可能会提出merge请求,这个时候使用下面的命令:
git remote upstream 别人url
git fetch upstream
git checkout master
git merge upstream/master
git修改commit信息
git commit --amend
git分支的使用
当我们的项目已经完成,并且上线的时候,这个时候我们在这个版本的基础上面进行修改,准备下一次的发版,这个时候突然说上一版本有bug,需要紧急修复,这就尴尬了,第二版开发到一半,这个可咋办,这时候就要用到分支了.
在1.0版本完成的时候新建一个分之version1.0,然后切换到master分之继续开发,遇到需要紧急修复的问题只要切换到version1.0分之进行修改,同时可以将修改的内容合并到master分之上面。
查看分之git branch
新建分之git branch version1.0
切换分之到version1.0git checkout version1.0
之后就可以在version1.0上修改代码
推到远程分之git push origin version1.0
合并分之:
先切换到主分之git checkout master
合并分之git merge version1.0
记得解决冲突
删除分之git branch -D version1.0
未完待续......
后记
这些都是本人在平时开发过程中记录的,记录起来,以便使用的时候查询。借鉴了很多资料,另外,由于本人水平有限,所以难免会有纰漏之处,如若发现,请告知,在此不胜感激。