git常用命令
1. 新建一个仓库
使用当前目录作为Git仓库,我们只需使它初始化。
git init
使用我们指定目录作为Git仓库,newrepo为制定目录。
git init newrepo
2.添加文件到缓存区
git add 命令可将该文件添加到暂存区
git add filename
3.提交将暂存区内容到版本库
使用git add
命令将想要快照的内容写入暂存区, 而执行git commit
将暂存区内容添加到仓库中。
Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址。
$ git config --global user.name 'wengmq'
$ git config --global user.email wengmq@XXX.com
将暂存区内容添加到仓库中:
git commit -m "message"
4.与远程仓库连接
remote_server
代表远程仓库的地址
origin
表示远程仓库的别名,之后的远程仓库可以用这么名字代替
git remote add origin remote_server
5.提交到远程仓库
推送对单一分支做出的变更到远程仓库,运行:
git push origin 'branchname'
推送所有分支到远程仓库,运行:
git push -all origin
6.断开当前与远程仓库的连接
git remote rm origin
7.拉取最近一次提交到版本库的文件到暂存区
该操作 可以 拉取最近一次提交到版本库的文件
到暂存区
并且该操作不影响工作区
简单的来说 就是可以帮我们从版本库中 拉取文件到 暂存区 当我们把工作区的某个文件弄乱了 我们就可以使用该命令 把版本库中的那个文件拉到暂存区 然后在拉回工作区
git reset HEAD -- <file>
分析一下 这个命令的各个参数了
filen
一看就知道 是我们要拉取的文件名
HEAD
可以理解为一个游标 一直指向当前我们所在版本库的地址
, 就是我们当前所在版本库的头指针
当然 我们也可以不使用HEAD 可以直接使用版本库的地址 版本库地址 可以用 git log 命令打印出来
如下图 version 1.0
的版本库地址为 f0a1684
8.从暂存区删除文件
当执行 "git rm --cached " 命令时,会直接从暂存区删除文件,工作区则不做出改变。
应用场景:当我们不小心上传了如class文件,我们需要的是将远程仓库的文件删除,保留在本地仓库,使其不被版本控制。(github上尽量上传有效代码)
git rm --cached -r 文件夹名
git commit -m ""
git push
9.克隆仓库
克隆仓库的命令格式为:
git clone <repo>
如果我们需要克隆到指定的目录,可以使用以下命令格式:
git clone <repo> <directory>
参数说明:
repo
:Git 仓库。
directory
:本地目录。
比如,要克隆 Ruby 语言的 Git 代码仓库 Grit,可以用下面的命令:
$ git clone git://github.com/schacon/grit.git
执行该命令后,会在当前目录下创建一个名为grit的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录。
如果要自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:
$ git clone git://github.com/schacon/grit.git mygrit
10.查看暂存区的内容和状态
git status 以查看在你上次提交之后是否有修改。
我演示该命令的时候加了 -s 参数,以获得简短的结果输出。如果没加该参数会详细输出内容:
$ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README
new file: hello.php
加入参数 -s
$ git status -s
A README
A hello.php
注: 前面的 ?
代表不在暂存区的文件(文件未跟踪) A
表示 新添加的文件 M
代表有修改的文件
11.Git 分支管理
列出分支基本命令:
git branch
没有参数时,git branch 会列出你在本地的分支。
$ git branch
* master
此例的意思就是,我们有一个叫做 master 的分支,并且该分支是当前分支。
当你执行 git init 的时候,缺省情况下 Git 就会为你创建 master 分支。
如果我们要手动创建一个分支。执行 git branch (branchname) 即可。
$ git branch testing
$ git branch
* master
testing
切换分支,我们用 git checkout (branch)
切换到我们要修改的分支
$ git checkout master
Switched to branch 'master'
我们创建了一个分支,在该分支的上移除了一些文件 test.txt,并添加了 runoob.php 文件,然后切换回我们的主分支,删除的 test.txt 文件又回来了,且新增加的 runoob.php 不存在主分支中。
使用分支将工作切分开来,从而让我们能够在不同开发环境中做事,并来回切换。
列出所有分支名称如下:
git branch -a
remotes/origin/dev
remotes/origin/release
切换远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
git checkout -b dev origin/dev,