git init
git init 命令来初始化一个 Git 仓库
git add 命令可将该文件添加到暂存区
git add xx 添加某个工作区文件 xx到暂存区 git add . 将当前工作目录的所有文件保存到暂存区
git commit
git commit -m ’ 提交时的做了哪些改变 ’ 将缓存区内容添加到版本库中。 git commit -am ’ 提交时的做了哪些改变 ’ 如果你觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -am 选项跳过这一步
git status 命令用于查看项目的当前状态
git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别 •尚未缓存的改动:git diff • 查看已缓存的改动: git diff --cached • 查看已缓存的与未缓存的所有改动:git diff HEAD • 显示摘要而非整个 diff:git diff --stat git status 显示你上次提交更新后的更改或者写入缓存的改动, 而 git diff 一行一行地显示这些改动具体是啥。
git reset
git reset git reset HEAD 命令用于取消已缓存的内容。 git reset HEAD hello.php 取消hello.php缓存
git rm
git rm 从工作目录中手工删除文件 git rm --cached 如果把文件从暂存区域移除(不从工作区中删除文件) git rm -f 如果删除之前修改过并且已经放到暂存区域的话(从工作区中删除文件) git rm –r <file文件夹>可以递归删除,即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件:
git mv
git mv a命令用于移动或重命名一个文件、目录、软连接。 git mv A B 然后对A重命名为B/(或移动进入B中 要是文件没变):
git 分支管理
git branch 列出分支基本命令:
git branch (branchname) 创建分支命令:
git checkout (branchname) 切换分支命令:
当我们切换到 testing 分支的时候,我们添加的新文件 test.txt 被移除了。切换回 master 分支的时候,它们有重新出现
git branch -D (branchname) 删除分支命令:
git merge 合并分支命令:
git merge A 将A分支合并到当前的主分支
以上实例中我们将 A 分支合并到主分支去,test.txt 文件被删除。 合并完后就可以删除分支: git branch -d newtest
git 合并分支并解决冲突
git checkout -b (branchname) 创建新分支并立即切换到该分支下,从而在该分支中操作。
git merge A 将A分支合并到当前的主分支
vim a 文件发生冲突 打开文件解决冲突后 使用git add 文件a 告诉git 解决冲突
git branch -D A 删除分支A 合并分支成功
git commit -m a ‘文件解决冲突 合并到本地仓库’
Git 查看提交历史
git log 命令列出历史提交记录
–oneline 选项来查看历史记录的简洁的版本。
–graph 选项,查看历史中什么时候出现了分支、合并。 –reverse 参数来逆向显示所有日志
–author
eg: git log --author=Linus --oneline -5
如果你要指定日期,可以执行几个选项:–since 和 --before,但是你也可以用 --until 和 --after。
eg: git log --oneline --before={3.weeks.ago} --after={2010-04-18} –no-merges
Git 标签 如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签。 比如说,我们想为我们的 runoob 项目发布一个"1.0"版本。 我们可以用 git tag -a v1.0 命令给最新一次提交打上(HEAD)“v1.0"的标签。 -a 选项意为"创建一个带注解的标签”。 不用 -a 选项也可以执行的,但它不会记录这标签是啥时候打的,谁打的,也不会让你添加个标签的注解。 我推荐一直创建带注解的标签。
git tag -a vx 创建标签 eg:git tag -a v0.9 85fc7e7
git log --decorate 时,我们可以看到我们的标签
git tag 查看已有标签
git tag -d vx 删除标签
git show vx 查看此版本的所有修改内容
GITHUB
git remote add origin url 提交到github的仓库地址
git remote add origin https://github.com/XXX/blog.git
git push -u origin master 把当前主干推送到仓库的主干上去
git remote 查看当前的远程库
git remote -v 查看每个别名的实际地址
git remote rm origin 删除远程仓库
提取远程仓库
git fetch 从远处仓库下载新分支与数据:eg: git fetch origin master git fetch origin master 时,它的意思是从名为 origin 的远程上拉取名为 master 的分支到本地分支 origin/master 中。既然是拉取代码,当然需要同时指定远程名与分支名,所以分开写。 还可以一次性拉取多个分支的代码:git fetch origin master stable oldstable;
git merge 从远端仓库提取数据并尝试合并到当前分支 eg:git merge origin/master
执行 git merge origin/master 时,它的意思是合并名为 origin/master 的分支到当前所在分支。
也还可以一次性合并多个分支的代码:git merge origin/master hotfix-2275 hotfix-2276 hotfix-2290;
该命令就是在执行 git fetch 之后紧接着执行 git merge 远程分支到你所在的任意分支。
假设你配置好了一个远程仓库,并且你想要提取更新的数据,你可以首先执行 git fetch [alias] 告诉 Git 去获取它有你没有的数据,然后你可以执行
git merge [alias]/[branch]
以将服务器上的任何更新(假设有人这时候推送到服务器了)合并到你的当前分支。
git fetch 从远程仓库下载分支和数据到本地 ,需要自己git merge 合并分支
git pull:相当于是从远程获取最新版本并merge到本地
git puish :推送本地master 到远程仓库
git clone 从现有 Git 仓库中拷贝项目(类似 svn checkout)
git clone repo directory ;repo:Git 仓库 directory:本地目录。