Local
一、初始化
(一)全局变量
git config --global user.name "MrLrf"设置用户名git config --global user.email "14163548@qq.com"设置邮箱git config --global color.ui "always"设置颜色
(二)初始化版本库
git init在当前根目录下生成.git目录
(三)添加新文件到版本库
git add somefile.text添加单个文件到暂存区git add *.txt添加所有txt文件到暂存区git add .; git add -u; git add -A添加所有文件暂存区(包括子目录,不包括空目录)
区别:git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。 git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写) git add -A :是上面两个功能的合集(git add --all的缩写)
(四)提交
git commit -u "提交信息"提交代码
二、常用操作
(一)提交
git commit -m "some msg" -a提交所有修改git commit -m "some msg to readme.txt" readme.txt提交单个文件git commit -C head -a --amend增补提交,不会产生新的提交历史纪录
(二)撤销修改
- 撤销尚未提交的修改:
git checkout head readme.txt todo.txt撤销1、2个文件git checkout head *.txt撤销所有txt文件git checkout head .撤销所有文件
git revert --no -commit head提交最近一次提交的反操作git reset head <filename>取消暂存git reset -- hard head^^复位到head之前的那个版本,不会在版本库中留下痕迹
(三)分支
git branch列出本地分支git branch -a列出所有分支git branch <branchname>基于当前分支的末梢创建新分支git checkout <branchname>检出分支(切换到新分支)git checkout -b <branchname>基于当前分支的末梢创建新分支并切换分支- 合并分支:
git merge <branchname>合并并提交(如果发生了冲突就不会自动提交,如果冲突很多,不想立即解决他们,可以直接使用git checkout head .撤销)git merge --no -commit合并但不提交
- 重命名分支:
git branch -m <branchname> <newname>重命名分支(不会覆盖已存在的同名分支)git branch -M <branchname> <newname>重命名分支(会覆盖已存在的同名分支)
- 删除分支:
git branch -d <branchname>删除分支(如果分支没有被合并会删除失败)git branch -D <branchname>删除分支(即使分支没有被合并也照删不误)
(四)解决冲突
- 冲突很少时,直接编辑有冲突的文件然后提交即可
git merge tool冲突比较复杂时,生成.backup,.base,.local,.remote四个文件,然后自动调用冲突解决工具,解决冲突之后手动删除.orig文件(冲突解决之前的文件备份),最后提交。
(五)查看状态
git status当前状态git log历史纪录
注:git log指令后,输入q然后回车终止指令。git branch -v每个分支最后的提交git diff查看更改前后的区别
Remote
一、初始化
(一)克隆版本库
git clone <url>克隆url对应的版本库
(二)添加远程仓库
git remote add <别名(origin)> <远程版本库的url>将GitHub或其他设置为本地仓库的远程仓库git remote rm <别名(origin)>删除本地仓库的远程仓库及分支
(三)创建一个无本地分支的库
git init -bare当需要一个公用的中央库时,非常适合把它建成bare库
二、常用操作
(一)分支
git branch -r列出远程分支git remote prune origin删除远程库中已经不存在的分支
(二)从远程库获取
git fetch <远程版本库>例:git fetch origin获取但不合并git pull获取并合并到当前本地分支
(三)推入远程库
git push (origin master)
三、http://github.com
GitHub上连接已有仓库时的认证,是通过使用了 SSH 的公开密钥
认证方式进行的。创建SSH Key:ssh-keygen -t rsa -C "你的github邮箱"。然后输入cat ~/.ssh/id_rsa.pub然后就复制到粘贴板。