git是一个版本管理软件,能够方便保存各个时期修改的版本并且回复。分布式的结构方便团队协作开发。
github是一个远程的网络仓库,可以将自己写的代码放到github上。也可以在github上拉去别人的代码进行开发修改。
安装:
linux:sudo apt-get install git
windows:直接官网下载,https://git-scm.com/downloads。
windows中安装后使用gitBash打开git命令口,进行命令管理。也可以下载sourceTree进行可视化管理,sourceTree可以在官网下载,https://www.sourcetreeapp.com/。个人觉得在windows下使用sourceTree非常方便管理。sourceTree使用需要注册bitbucket账号,并且只能翻墙注册。
linux下可以直接使用命令更加方便,git本来就是给linux开发的。
下面主要介绍git的主要应用的命令。
1.设置本地名字与地址
$ git config --global user.name "Your name"
$ git config --global user.email "email@example.com"
2.创建仓库repository
在一个空文件夹下运行该命令,创建本地代码仓库。
$ git init
3.把文件添加到仓库/把修改添加到暂存区
$ git add <filename.txt>
4.把暂存区内容提交到仓库
$ git commit -m"description"
-m后面时本次提交 的说明
5.查看仓库当当前状态
$ git status
6.查看未提交的修改
$ git diff <filename.txt>
7.查看commit历史
$ git log
$ git log --pretty=oneline
$ git log --graph --pretty=oneline --abbrev-commit
查看分支合并的图
$ git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
8.git中HEAD
HEAD->master->最新版本
HEAD指向当前分支,当前分支master指向最新的版本。
HEAD^表示上一个版本,HEAD^^上两个版本,HEAD~100第前100个版本。
9.退回版本
$ git reset --hard HEAD^
$git reset --hard <commit id>
或用版本号commit id 退回,commit id只用输前几个就行,别太少。
10.退回未来,退回后再返回刚才版本
查看之前的历史commit id
$git reflog
11.版本库,工作区,暂存区
(图片来自网络,侵删)
$ git add
就是将工作区修改添加到暂存区,$ git commit
就是将暂存区提交到版本库。HEAD为指向当前分支master的指针,master为指向最新版本的指针。
12.checkout命令
$ git checkout -- filename.txt
清除工作区修改的内容,返回到暂存区内容,若暂存区没有则返回为版本库内容。
$ git checkout master
跳转到master分支
$ git checkout -b dev
创建dev分支并跳转到dev分支
13.删除文件
在文件夹中删除后
$ git rm filename.txt
$ git commit -m "remove filename.txt"
14.SSH创建以及添加到github
$ ssh-keygen -t rsa -C "youremail@example.com"
用户主目录可找到.ssh文件,其中id_rsa为私钥,不能泄露。id_rsa.pub为公钥。打开github->Settings->SSH Keys,添加id_rsa.pub的内容。
15.关联远程仓库
$ git remote add origin git@github.com:SXKai/hello-world.git
origin后面的内容可以通过github生成。如果没有绑定SSH,也可以通过http的关联,不过需要输入用户名跟密码。
16.将本地库推送到远程分支
$ git push -u origin master
将本地当前分支与远程库master关联并推送,-u关联,以后可以不加-u。
17.查看本地库关联远程库情况
$ git remote -v
加上-v可以查看push跟pull的地址。
18.从远程库克隆一个本地库
$ git clone git@github.com:SXKai/hello-world.git
19.创建分支
$ git branch dev
$ git checkout out
创建并转到dev分支
$ git checkout -b dev
创建并转到dev分支
$ git checkout -b dev origin/dev
创建并转到dev分支,并关联远程库的dev分支
20.查看分支
$git branch
加*表示当前所处分支
21.合并指定分支到当前分支
$ git merge dev
22.删除分支
$ git branch -d dev
23.拉取分支
$ git pull
拉去的分支必须与远程库的分支建立关联。
24.储存工作区现场
$ git stash
25.查看储存
$ git list
26.回复储存
$ git stash apply
$ git stash apply stash@{0}
27.删除储存
$ git stash pop
28.打标签
$ git tag <XXX>
给当前分支最新的commit打标签。
$ git tag <XXX> commit_id
给历史上一次commit打标签
$ git tag -a <XXX> -m "version 0.1 released" 3628164
打带有说明的标签,-a后加标签名,-m后加说明
29.查看标签
$ git tag
$ git show <XXX>
查看特定标签信息。
30.推送标签到远程库
$ git push origin <XXX>
$ git push origin --tags
31.删除标签
$ git tag -d <XXX>
删除本地标签。
$ git push origin :refs/tags/<XXX>
删除远程标签。
32.忽略特殊文件
git工作区的根目录下创建.gitignore文件。https://github.com/github/gitignore可以下载配置好的文件。
33.强制添加
当被ignore的文件需要add跟commit的时候,可以使用-f。
$ git add -f filename.txt
34.检查ignore文件
检查哪个地方ignore了该文件。
$ git check-ignore -v filename.txt
35.给命令重命名
$ git config --global alias.co checkout
补充:当运行某个指令后,出现,无法输入的情况,可以使用q进行退出。
WALDM