git和svn都是版本管理控制器,git是有本地仓库的,git有工作区和暂存区,工作区是指我们在本地电脑上的目录,而暂存区是即将commit到服务器的目录。
提交一个文件 先将文件加入到暂存区,之后再commit到服务器
git有一个主分支master,而HEAD指向当前的commit,branch是分支。
git常用的指令
将文件加到暂存区
git add <文件名>
将文件移除暂存区
git rm --cached <文件名>
提交暂存区里的文件
git commit -m “描述”
查看状态
git status
三种状态
未添加:在项目中对文件进行了修改,但是没有执行 git add 将改动添加到缓存区
未提交:已将改动添加到缓存区,但是没有执行 git commit 提交到 git 仓库
已提交:已将改动提交到仓库
版本回滚
查看日志 可以查看master分支,查看commit id 为了之后跳到所需版本
git log
根据commit id跳到所需的版本,此时HEAD就指向当前跳到的版本,如果修改文件,再次commit,就会产生一个分支
git reset --hard <commit id>
剪出版本有两种情况,
第一种,如果没有更新到暂存区,就剪出(恢复)到当前HEAD指向的版本
第二种 如果有更新到暂存区,就恢复到暂存区里的版本(暂存区里只放当前文件的一个版本) 指令如下
git checkout --<文件名>
记录每条命令
git reflag
工作区备份
通常我们会在本地写保存我们写的代码,代码足够完善之后才会去提交,所以我们需要把工作区里所有的内容保存,其实在工作区也有一个stash栈,我们将工作区里所有的内容都保存在stash栈,指令为
git stash
如果我们想看工作区里所有的备份
git stash
可以将你指定版本号工作取出来
git stash apply stash@{1}
就可以将你指定版本号为stash@{1}的工作取出来
远程仓库
1.切换到此文件夹下
2.接着将用git init 命令在此文件夹下建立一个git 仓库
命令关联到远程仓库
git remote add origin git@ github地址
从 origin (远程)下载代码到本地当前目录,分支名是 master
git pull origin master
将本地的 master 分支上传到远程仓库 origin 中
(第一次要关联,之后直接执行 git push 就可以)
git push origin master
克隆
git clone 地址
一定要记住,每一次提交代码时,应该先用pull拉取更新,合并冲突后再提交
在拉取之前要先看看当前的工作是否提交,如果提交了直接pull处理冲突再提交,如果没有commit,先用git stash将工作区的代码保存起来,在pull
分支
显示分支列表
git brach
创建分支
git brach <name>
切换分支
git checkout <name>
合并某分支到当前分支
git merge <name>
删除分支
git branch -d <name>
将分支里的内容上传到远程
git push origin<name>
将远程的内容拉到分支
git pull origin<name>
当前工作区与HEAD指向的版本号的内容的不同之处
git diff