文章目录
git简介:
git是一个版本控制工具,实现方式为分布式版本库,区别于集中式等等
git安装:
地址为:https://git-scm.com/downloads
git配置
- 三个配置文件
- /etc/gitconfig git全局配置文件
- ~/.gitconfig 当前用户配置文件
- .git/config 当前项目配置文件
- 使用git config编辑命令对配置文件进行编辑
#配置本地全局用户信息
$ git config --global user.name "YourName"
$ git config --global user.email "YourEmail"
#配置你的编辑器
$ git config --global core.editor emacs
#查看你的配置信息
$ git config --list
$ git --version
#或者
$ vim ~/.gitconfig
$ vim /etc/gitconfig
git工作流程
认识三个区:工作区,暂存区,版本库
git命令
创建仓库
git init
克隆仓库
git clone
添加缓存
git add file //将文件添加至暂存区
git status -s //查看文件写入状态
touch file //创建文件
vim file //改动文件
A表示提交至缓存区
AM表示文件有新的改动
??表示文件没有提交至缓存区
git diff
git diff --cached查看未缓存,和已经缓存的改动记录
提交仓库
git commit //在此之前必须设置用户及其邮箱
$ git config --global user.name 'runoob'
$ git config --global user.email test@runoob.com
删除文件及移动文件
$ git rm
$ git mv file1 file2
git强大的分支管理
$ git branch //列出分支
$ git branch branchName //创建分支
$ git checkout branchName //切换分支
$ git merge //合并分支
注:如何解决合并冲突问题
查看提交版本信息
git log
添加标签和备注信息
git tag
连接远程 代码仓库
#第一步:ssh连接你的github
$ ssh-keygen -t rsa -C "youremail@example.com"
#后面的 your_email@youremail.com 改为你在 github 上注册的邮
#箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功
#的话会在~/下生成.ssh文件夹,进去,打开 id_rsa.pub,复制里面的 #key。
#回到 github 上,进入 Account => Settings(账户配置)添加你的ssh_key
#第二步:验证是否成功连接
$ ssh -T git@github.com
Hi huoying12138! You've successfully authenticated, but GitHub does not provide shell access.
#表示连接成功
#第三步
在Github新建一个仓库
在你的本地同时也新建一个仓库
$ mkdir test //新建名为test的仓库
$ cd test/
$ touch README.md
$ "# 这是一个测试文件">>README.md //新建一个测试文件
$ git init
$ git add README.md
$ git commit -m "MyFirstSubmit" //将.md提交至本地master仓库
//提交到github仓库
$ git remote add origin git@github.com:huoying12138/GitTest.git //表示用origin别名将你的远程仓库相关联
$ git push -u origin master //将你的本地master分支推送至origin远程仓库,也就是github
成功截图如下
提取远程仓库及合并至本地
git fetch 远程仓库名
提取如下:
git merge origin/master
如图表示同步更新成功至本地:
//如果远程仓库有更新,需要使用fetcht提取,再使用merge合并,从而更新同步至本地仓库
本地同步更新至远程仓库
git push origin master //origin表示远程仓库别名,master表示本地需要同步至远程仓库的分支
参考文章:http://www.runoob.com/git/git-remote-repo.html
推荐文章:http://www.ruanyifeng.com/blog/2014/06/git_remote.html
注:这篇文章为阮一峰老师对git pull && git fetch && git push &&git clone的全面详细的对比解释,面试可能会问哦!!