Git的使用基于命令行
一、检查Git
使用Git前先检查本机上是否安装了Git,Mac上默认都是安装了Git的
1、打开终端,输入指令,如果已经安装了Git就会显示版本号
git version
2、如果尚未安装Git,可以通过Xcode的Command Line Tools并使用如下命令安装Git
xcode-select --install
二、新建项目并上传
1、在远程第三方托管网站上新建一个远程仓库
上一篇文章已经在讲述过如果在GitHub上创建仓库,这里就不在叙述了。
2、本地创建一个新的项目,以Xcode TestDemo为例,新建项目时要注意项目内是否由一个.git的Git文件,作为新项目上传时需要先删除该文件。
3、打开终端,通过cd指令进入该文件夹下,初始化一个新的Git
git init
4、添加当前文件夹目录下所有文件到Git
git add .
5、先提交项目到本地仓库,引号内为提交说明
git commit -m "project"
6、然后推送本地仓库到远程仓库,其中http://xxxxxxxx为远程仓库地址,通常需要在该地址后添加.git链接到Git仓库,如果是首次推送,还需要输出远程仓库的Git用户名和密码来进行验证。
git remote add origin 你的远程库地址
7、获取远程库与本地同步合并(如果远程库「不为空」则必须做这一步,否则后面的提交会失败)
git pull --rebase origin master
8、把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程。执行此命令后会要求输入用户名、密码,验证通过后即开始上传。
git push -u origin master
9、状态查询命令
git status
此时打开github,进入TestDemo仓库会发现我们创建的本地iOS项目已经上传到仓库中了。
三、从Git上获取已有的项目,修改后并提交
1、根据已有项目的Git地址,使用命令行工具从远程克隆一个仓库到本地
在桌面创建一个空的test文件夹,cd进入该目录,执行下面的命令就可以从远程克隆一个仓库到本地
git clone https://xxxxxxx.git
2、修改完项目内容后,使用命令行工具进入项目文件夹,先执行如下两条命令将项目提交到本地仓库
git add .
git commit -m "project"
3、然后执行push命令将项目同步到远程Git仓库
git push
注:该步常见问题为mac git设置的全局用户名和密码与该远程仓库使用的用户名密码不相符,需要通过如下命令进行修改,使用后系统会提示输入密码
git config --global user.name "用户名"
git config --global user.email "邮箱"
四、上传新建分支
1、新建名为v4的分支
git checkout -b v4
git add .
git commit -m "新建分支"
2、新建并提交到远程分支
git push --set-upstream origin v4
五、删除分支
1、删除分支前要查看下分支的情况
查询本地分支情况:
git branch
查询本地和远程分支情况:
git branch -a
分支切换:
git checkout master
2、如果要删除名为 v4 的分支,必须切换到本地 git 的另一条分支上:
git checkout master
删除本地v4分支操作:
git branch -d v4
删除远程分支:
git branch -r -d origin/v4
删除远程分支(准):
git push origin -d v4
六、重命名分支,并提交到远程
1、重命名
git branch -m old-branchname new-branch-name
2、删除远程分支
git push origin :oldBranchName
3、将重命名过的分支提交
git push origin newBranchName
七、更新项目到本地
git fetch origin master git log -p master..origin/master git merge origin/master
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp
git diff tmp
git merge tmp
使用git pull 更新,相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并