git常用命令.txt
提交
git add file add到stage缓存区
git commit -m "" commit 把缓存区的所有内容提交到当前分支 版本库 master
历史记录
git log --pretty=online
版本回退
回退到上一个版本 git reset --hard HEAD^
回退到制定的版本 git reset --hard commit_id
记录历史命令
git reflog 可以查看commitid
对比工作区和版本库的区别,git跟踪的是改变
git diff HEAD -- file
放弃工作区的修改,让文件最近一次git commit或git add时的状态
git checkout -- file
从版本库删除文件
git rm test.txt
git commit -m "remove test.txt"
误删除的文件恢复
git checkout -- test.txt
添加远程仓库 关联远程仓库 origin git的默认叫法,一看就知道是远程库,git@表示git协议
git remote add origin git@github.com:feng1990liu/learngit.git
本地的所有内容推送到远程库上
git push -u origin master 第一次推送加上-u会把本地的master分支和远程master分支关联起来,以后推送可以简化不加-u
之后推送
git push origin master
从远程服务器克隆到本地,git://使用ssh,但也可以使用https等其他协议
git clone git@github.com:feng1990liu/gitskill.git
分支管理
创建并切换分支
git checkout -b dev
相当于
git branch dev
git checkout/switch dev
查看当前分支
git branch
合并分支
git merge dev 将dev的分支合并到master分支上
删除dev分支
git branch -d dev
解决冲突
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
用git log --graph --pretty=oneline --abbrev-commit 命令可以看到分支合并图。
分支管理策略
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
多人协作
查看远程库信息,使用git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。