安装(macOS)
1.安装Homebrew :软件包管理器,用于管理一些开源软件在 Mac OS X 上的安装和升级
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2.安装完成后,执行git安装命。
$ brew install git
3.Git是分布式版本控制系统,所以,每个机器都必须自报家门;注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址(不要 --global )
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
简单使用
1.把一个文件目录变成Git可以管理的仓库
$ cd ~/Desktop/
$ mkdir test
$ cd test
$ git init
2.添加文件提交到仓库(需把文件放在git仓库目录下;-m后面输入的是本次提交的说明,最好是有阅读意义的英文)
$ git add eadme.txt
$ git commit -m "wrote a readme file"
3.查看仓库当前的状态,哪些文件被修改
$ git status
4.查看文件被修改的具体地方
$ git diff read.txt
5.查看提交的历史记录(-pretty=online 表示只看主要信息,提交的版本号及commit说明,不要也行)
$ git log -pretty=oneline
$ git reflog (查看所有commit记录)
6.回退到上一次提交的版本 或 任意一个版本(commit_id 没必要写全)
$ git reset --hard HEAD^
$ git reset --hard commit_id
7.暂存区 和 缓存区
git add把文件添加进去,实际上就是把文件修改添加到暂存区;
git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支
git diff HEAD -- readme.txt:命令可以查看readme.txt文件在工作区和版本库里面最新版本的区别
git checkout -- readme.txt:把readme.txt文件在工作区的修改全部撤销
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”
git reset HEAD file:可以把暂存区的修改撤销掉
删除文件:git rm删掉,并且git commit
中级使用
1.本地仓库关联远程仓库(GitHub)
$ git remote add origin git@github.com:NGjiapeche/UpcodebySwift.git
$ git remote -v (查看是否关联远程仓库)
2.本地库的内容推送到远程(第一次推送master分支时,加上了-u参数,在以后的推送或者拉取时就可以简化命令)
$ git push -u origin maste
3.从远程库克隆
$ gir clone git@github.com:NGjiapeche/UpcodebySwift.git
4.创建dev分支,然后切换到dev分支
$ git checkout -b dev (等于两面2个命令)
$ git branch dev (创建分支)
$ git checkout dev (切换到分支)
$ git branch -a (查看所有分支)
$ git branch -d dev (删除dev分支)
$ git branch -D dev (强行删除未合并过的分支)
6.把dev分支的工作成果合并到master分支(在master分支下操作)
$ git merge dev (Fast forward)
$ git merge --no-ff -m "merge with no-ff" dev (普通模式合并,合并后的历史有分支,能看出来曾经做过合并)
7.查看分支合并图
$ git log --graph --pretty=oneline --abbrev-commit
8.当dev分支还无法提交时,需要去修复紧急bug分支时(把当前工作现场“储藏”起来,等以后恢复现场后继续工作,git status 是干净的)
$ git stash
$ git stash list
$ git stash pop (回复工作现场;等于下面2条指令)
$ git stash apply(恢复)
$ git stash drop(删除stash内容)
9.本地分支关联远程仓库分支
$ git branch --set-upstream "branch-name" origin/"branch-name" (本地和远程都有分支,未关联)
$ git checkout -b "branch-name" origin/"branch-name"(远程有分支时,在本地新建分支时关联远程分支)
$ git push origin "branch-name" (远程没有分支时,在本地分支push时创建新分支)
10.拉取远程仓库文件
$ git pull
高级使用
很多Git命令只有那些专家才明白,这些命令可能你一辈子都不会用到。既然Git是一个工具,就没必要把时间浪费在那些“高级”但几乎永远不会用到的命令上。一旦你真的非用不可了,到时候再自行Google或者请教专家也未迟。
github相关使用
创建一个远程仓库
-
新建一个仓库
-
你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,需要添加SSH Key公钥
获取 SSH Key
~/.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人
$ cd ~/
$ ssh-keygen -t rsa -C "youremail@example.com" (提示你输入密码,没必要输入密码只需一直回车即可)
$ cd ~/.ssh
$ cat id_rsa.pub (然后直接选定copy)
参与别人的开源项目
Fork任意开源仓库;
自己拥有Fork后的仓库的读写权限;
可以推送pull request给官方仓库来贡献代码。(你可以fork我的仓库试一把pull request)