git 的基本使用
2015-08-12 本文已影响72人
Air_cc
基本概念
- git 特点
- 本地存储完整项目,离线使用
- 不逐行比较,只保存修改过的文件,未修改的文件不处理
- git文件的三种状态
- 已提交(committed) -- 已保存到仓库中受管理的文件
- 已修改(modified) -- 已修改,但未放到暂存区的文件
- 已暂存(staged) -- 放到寄存区,未提交给仓库的文件
-
git工作流
git工作流
安装及配置
(ubuntu14下)
sudo apt-get install git
-
git config --global user.name "userName"
,git config --global user.email "user@email.com"
(其他配置)
基本操作
- 创建仓库(工作目录) -
mkdir git_dir
,cd git_dir
,git init
- clone 已有项目到仓库 -
git clone url
- 添加工作目录中的(新跟踪的或已修改的)文件/文件夹到暂存区 -
git add fileName/direction
- 提交文件到仓库 -
git commit -m "what changed"
- 修改上次提交的信息
- 仅本地:
git commit --amend
- 已在远程:
git push -f
- 仅本地:
- 查看当前工作目录的文件状态 -
git status
- 查看已修改文件与历史版本的比较 -
git diff
,图形比较界面git difftool
- 忽视文件(不受git管理) - 创建并配置文件
.gitignore
- 恢复被修改的文件 -
git checkout -- <file>
- 删除文件 -
git rm file
, 删除目录:git rm -r folder
- 查看提交记录
- 一般情况(使用reset后之前的记录会被冲掉) -
git log
- 所有提交过的记录 -
git reflog
- 精简显示
git --name-status --oneline
可设置快捷别名:git config --global alias.ll 'log --name-status --oneline'
- 一般情况(使用reset后之前的记录会被冲掉) -
- 取消放入暂存区的文件
git reset HEAD <file>
- 版本回退
git reset --hard HEAD
- 打标签
git tag -a v0.0.1 -m "tag message"
- 储藏(用于工作被打断时,暂存当前的工作状态) -
git stash
,- 显示暂存状态:
git stash list
, - 恢复暂存状态:
git stash apply
- 删除暂存状态:
git stash drop
- 恢复暂存状态:
git stash pop
- 显示暂存状态:
- 分支操作
- 查看分支:
git branch
- 创建分支:
git branch branchName
- 切换分支:
git checkout branchName
- 删除分支:
git branch -d branchName
- 创建并切换分支:
git checkout -b branchName
- 合并分支:
git merge branchName
- 查看分支:
解决冲突
- 直接使用某个分支
# 使用当前分支的文件
git checkout --ours <file>
# 使用被合并的文件
git checkout --theirs <file>
-
手动解决冲突
- 在自己编辑器中修改
- 借助
git mergetool
-
通过习惯避免冲突
- 修改代码之前 先 pull 代码
- 通过 git flow 管理项目开发
远程git仓库的使用 --阮一峰blog
使用git服务器
- 初始化一个本地仓库
git init
- 将现有仓库clone出一个裸仓库
git clone --bare my_project my_project.git
-- 相当于cp -rf my_project/.git my_project.git
远程仓库通常以.git命名的裸仓库 - 将裸仓库拷贝到远程服务器上
scp -r my_project.git user@host:/path
scp 为security copy 用于实现两个主机间的加密传输 - 至此,远程仓库就搭建好了,可通过
git clone
命令获取仓库内容 - 建立远程仓库的连接
git remote add origin git_server_path
- 从远程仓库获取内容
git pull origin master
- 将本地仓库内容推送到远程仓库
git push origin master
使用github
- 本地git设置
git config --global user.name "*YOUR NAME*"
git config --global user.email "*YOUR EMAIL ADDRESS*"
- github创建仓库
- 通过ssh协议clone仓库
git clone ssh_address
/ 或者本地创建好项目,再git remote add remoteRepoName gitRepoPath
- 将本机公钥上传到github
- 创建公钥
ssh-keygen -t rsa -C "[your_email@youremail.com]"
(如果有则不需要) - 复制
~./ssh/id_rsa.pub
到https://github.com/settings/ssh
新建的记录
- 创建公钥
- 验证
git -T git@github.com
- 通过git进行远程操作
参考资料: