前提已经安装好git,并且有GitHub账户!!!
首先登陆GitHub官网创建一个库!!!
本地电脑有个文件夹用来存储这个库,在终端cd进入这个文件夹,然后输入:git clone url(复制官网创建的url) 克隆这个库!!!
cd进入这个项目,设置贡献者,命令:
git config - -global user.name “你的用户名”
git config - -global user.email “你的邮箱”
只输入git config - -global user.name/user.email 可以用来查看贡献者。
或者输入: git config —list 查看git下所有文件
master是主分支,可以建立新的分支,然后更改后,可以和主分支合并。
git三个区:
工作区
暂存区
-
作为过渡层
-
避免误操作
-
保护工作区和版本区
-
分支处理
版本区(库)
命令:
将文件提交到暂存区:
git status 查看分支下有没有文件
git add + 文件名 把文件添加到暂存区,可以用来管理
git add . 把所有文件添加到暂存区
将文件提交到版本库:
git commit 将暂存区的文件提交到版本库 会提示让写注释。
git commit -m “写的注释”
简写:git commit -a -m “注释” —>直接把暂存区的文件提交到版本库
git log 可以查看提交的历史 当提交历史太多时,直接按Q键退出
要修改文件时,同上,先进入该文件的库,cd进去,然后将修改后的文件
git commit -a -m “注释” 提交到版本库!!
同步(提交)到远程仓库:
git remote —>远程仓库的名字 git remote add ‘’ ’’ —>可以修改远程仓库的名字
git remote —>可以查看远程仓库的地址
git push ‘仓库名字’(origin) ‘分支’(master) 同步到远程仓库
对比:
将更改一次的文件通过 git add 文件名 提交到暂存区,然后再次在工作区更改了文件,但没提交,此时用:
git diff 可以查看此文件在工作区 和 暂存区的 区别 即:对比的是工作区 和 暂存区
git diff —cached(—staged) 查看暂存区 和 版本区的 区别 即:对比的是暂存区 和 版本区
git diff master 查看工作区 和 版本区的区别 即:对比的是工作区 和 版本区
撤销:
即在把文件add 到暂存区时,发现又更改,此时可以撤销操作,
git reserve HEAD + 文件名 即:把刚才提交到暂存区的文件撤销回工作区
git checkout —文件名 即:将文件恢复成最初版本库里面的那个状态
当把A文件commit到版本库时,误操作忘记把B文件提交上,此时先把B文件add到暂存区,然后用命令:
git commit -m ”注释说明” - - amend 即:把A文件撤销到暂存区,然后让A 文件和B文件合并到一起提交到版本库
删除:
当把A文件提交到暂存区时,然后在工作区删除了,那么git status 还能在暂存区看到,那么用命令:
git rm + 文件名 将暂存区的A文件也给删除,使工作区和暂存区达到一个同步 注意:当工作区 和 暂存区 都存在A文件时,想把暂存区的A文件给删除,此时git rm 这条命令是无效 需要用这个命令:
git rm -f 文件名 此时将会把工作区 和 暂存区的文件都给删除
git rm - -cached 文件名 此时只会把暂存区的文件删除,工作区的文件会留存
恢复:
当误操作把一个文件删除时,git status 查看删除的文件,然后 git log 获取历史版本,然后把git log下的想要恢复的id复制部分就可,执行命令:
git checkout commit id ‘要恢复的文件名’ - - >恢复的是单一的文件
当把所有文件删除时,执行命令:
git reset - - hard commit id - - >恢复到当初的那个版本 (对版本的还原)
git reset - -hard HEAD^ - ->恢复到上一个版本,多次输入逐层恢复
git reset - - hard HEAD~ +数字 - - >恢复到前几个版本,看数字。
git reflog - - >可以查看所有操作的版本,然后获取id 用git reset - - hard commit id 恢复
多人协作解决冲突
当远程仓库有一个版本的文件时,在本地再次更改提交,会造成冲突,通过
git fetch - ->把两个不同的版本都同步过来
git diff master origin/master - ->查看两个文件的区别,然后手动进行合并
git merge origin/master - - >把不同之处会同步到本地,然后手动取舍,在同步到远端
git pull - - > 直接把不同的文件进行合并,不会查看不同之处。
开源项目合作:
当一个项目,不是合作者时,先把这个项目克隆下来,然后进行修改,提交,然后request对方是否愿意合并,可以留言,然后对方同意后会进行合并。
git分支:
git branch - - > 查看分支
git branch 分支名 - - >创建分支
git checkout 分支名 - - >切换分支
git checkout -b 分支名 - - > 快速创建并切换分支
git merged 分支名 - - > 合并分支
git branch - - merged - - >查看已经合并的分支
git branch - - no-merged - - >查看没有合并的分支
git branch -d 分支名 - - > 删除分支 //只能删除合并了的分支,没合并的不能删除
git branch -D 分支名 - - >强制删除没合并的分支
当文件冲突时,首先用git merged 分支名 - - > 合并分支,然后会出现错误,用git branch - - > 查看分支,会在本地文件出现不同之处,手动选择,最后再次提交。
GitHub上的分支:
git上创建分支之后,直接git push 仓库名 分支名 然后直接提交到远程仓库GitHub
可以直接在GitHub创建分支
GitHub上的标签:
git tag 标签名 - - >创建标签 直接运行:git tag 可以查看标签
git push origin 标签名 - - >同步到GitHub上
GitHub上直接创建标签
GitHub上创建博客
资源
http://git.oschina.net/progit/
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000