git常用操作
Posted lztl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git常用操作相关的知识,希望对你有一定的参考价值。
安装后初始化配置:
$ git config --global user.name <username>
$ git config --global user.email <email>
使用 Git 来对现有的项目进行管理,初始化命令:
$ git init
文件有四个状态: untracked、unmodified、modified、staged。
要查看哪些文件处于什么状态,可以用 git status 命令
untracked 未跟踪,就是从来没被执行过add的文件,没有加入到git库, 不参与版本控制
unmodified 已经执行add并commit提交入库的文件
modified 参与版本控制的文件,被修改后还没进行任何操作时的状态, 可进行add
staged 执行了add,但未commit
add命令:
git add <文件名> 将这个命令理解为“添加内容到下一次提交中”,运行了 git add 之后又作了修订的文件,需要重新运行 git add 把最新版本重新暂存起来
git add . 添加修改、新增的,不包括删除的(指的是直接从硬盘删除,但git仍在跟踪)
git add -u 添加修改、删除的,不包括新增的
git add -A(git add --all) 添加修改、新增、删除
执行add之前(Modified状态)可以使用git checkout -- <file> 来撤销,这时会回到unmodify状态
执行add之后(Staged状态)使用git reset HEAD <file>来撤销,同样会回到unmodify状态
commit命令:
现在的暂存区域已经准备妥当可以提交了( staged )。 在此之前,请一定要确认还有 什么修改过的或新建的文件还没有 git add 过,否则提交的时候不会记录这些还没暂存起来的变化,这些修改过的文件只保留在本地磁盘。所以,每次准备提交前,先用 git status 看下,是不是都已暂存起来了, 然后再运行提交命令:
$ git commit –m <提交说明>
Git 提供了一个跳过使用暂存区域的方式, 只要在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来 一并提交,从而跳过 git add 步骤:
$ git commit -a -m <提交说明>
git分支操作:
git branch 查看当前分支
git branch <分支名> 新建分支
git checkout <分支名> 切换当前分支
git checkout -b <分支名> 新建并切换
git merge <分支名> 将分支名对应的分支合并到当前分支
git branch -d <分支名> 删除分支
git branch -D <分支名> 强制删除分支(例如分支未合并用上一条命令是删不了的)
git tag <标签名> 给当前状态打标签
git checkout <标签名> 回到打该标签名时的状态
删除文件:
删除文件用 git rm <文件名>
如果删除之前修改过并且已经放到暂存区域的话(还未commit),则必须要用强制删除选项 –f
另外一种情况是,我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。 换句话说,你想让文件保留在磁盘,但是并不想让 Git 继续跟踪。为达到这一目的,使用 --cached 选项:
$ git rm --cached README (之后git status会显示untracked)
如果是删除某个文件夹的话就是
git rm -r --cached file //不删除本地文件
git rm -r --f file //删除本地文件
查看提交历史:
git log
默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近 的更新排在最上面。
一个常用的选项是 -p,用来显示每次提交的内容差异。 你也可以加上 -2 来仅显示最近两次提交。
你也可以为 git log 附带一系列的总结性选项。 比如说,如果你想看到每次提交的简略的统计信息,你可以使用 --stat 选 项。 --stat 选项在每次提交的下面列出额所有被修改过的文件 、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加 了。 在每次提交的最后还有一个总结。
用git管理远程GitHub项目:
从一个服务器克隆一个现有的 Git 仓库:
git clone <url>
本地项目关联远程仓库:
git remote add origin <远程地址>
其中origin为远程主机名,可以随便取
(如果是项目的clone下来的话,则默认使用git管理并且添加了远程)
git push -u origin master //提交本地到远程origin主机maser分支
如果在github的remote上已经有了文件,而该文件的最新状态不是由你push的话,会出现错误。此时应当先pull一下,即:
git pull origin master
然后再执行push操作
或者可以直接执行git push -u origin master -f 强制push,但这样远程会被覆盖并从新开始
以上是关于git常用操作的主要内容,如果未能解决你的问题,请参考以下文章