本地创建版本库
mkdir <库名>
cd <库名>
git init //创建了一个名为<库名>的库
GitHub上建立仓库与本地仓库关联
登陆GitHub,找到“Create a new repo”按钮,创建一个新的仓库,并为之命名
之后在本地的<对应库名>仓库下运行命令:
git remote add origin git@github.com:<GitHub用户名>/<库名>.git
把本地库的所有内容推送到某个分支上
git push -u origin <分支名> //第一次推送分支时加上了-u,以后可以简化命令为git push origin master
克隆一个远程库至本地版本库
git clone git@github.com:<对方的GitHub用户名>/<库名>.git
本地库上传文件
git add <文件名>
git commit -m "备注信息"
本地库删除文件
git rm <文件名>
git commit -m "备注信息"
本地库误删处理
git checkout -- <文件名> //git checkout是用版本库中的版本替换工作区的版本,"一键还原"
查看仓库当前状态
git status
git diff <文件名> //查看某个文件被修改的前后区别
版本更迭
git log //查看历史版本 看过去
git reflog //查看每一次历史命令 看未来
git log --graph //查看分支图
不同情况的处理:
1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
git checkout -- <文件名> //撤销工作区对文件的更改
2:当你改乱了工作区某个文件的内容还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按情况1操作
git reset HEAD <文件名> //撤销暂存区的更改 放至工作区
3:已经提交了不合适的修改到版本库时,想要撤销本次提交,即版本回退,不过前提是没有推送到远程库。
git reset --hard HEAD~<number> //使版本库回退到上number个版本
git reset --hard <版本号> //直接跳到某个版本
分支操作
创建分支:
git checkout -b <分支名> = git branch <分支名> //创建分支
git checkout <分支名> //切换分支
当前分支:
git branch //查看当前分支
合并分支:
git merge <分支名> //Fast forward模式
git merge --no-ff -m "备注信息" <分支名> //非Fast forward模式,会提交一次commit
删除分支:
git branch -d <分支名>
git branch -D <分支名> //丢弃一个没有被合并过的分支,强行删除。
分支现场:
git stash //保存现场,之后可以切换分支
git stash list //查看工作现场存在哪里
git stash apply //恢复现场,但是恢复后stash内容并不删除,你需要用git stash drop来删除
git stash pop //恢复现场的同时把stash内容也删了
多人协作
git checkout -b <分支名> origin/<分支名> //在本地创建和远程分支对应的分支
git branch --set-upstream-to=origin/<分支名> <分支名>//指定本地分支与远程origin/分支的链接
git pull //抓取分支
多人协作的工作模式通常是这样:
首先,可以试图用git push origin <branch-name>推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,
用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。