git 常用命令
一、常见的工作流程
-
初始化
$ git init
在当前文件夹下生成 .git 文件夹,git 初始化版本管理。
-
克隆项目到本地
$ git clone [project address]
相当于 SVN 的 checkout 命令
-
配置个人信息
$ git config --global user.name "your username"
$ git config --global user.email "your email address"
添加 --global 属性是设置全局属性,及电脑中其他的项目管理的账号也邮箱也会是这个。去掉这个属性,将只作用于当前项目。而全局属性的用户名不会影响该项目。
-
添加单个文件到暂存区
$ git add <file>
eg : 添加文件 a.java 到暂存区
$ git add a.java
-
添加所有文件到暂存区
$ git add .
-
查看当前状态
$ git status
该命令可以查看有什么文件做了修改,还有什么文件没有被 git 追踪到,还有暂存区目前的状态,是否需要提交到版本库。
-
提交暂存区文件到版本库
$ git commit -m "commit message"
提交暂存区内的东西。提交时,必须要写清楚此次提交所做的事情。在执行该命令前,先查看下当前状态,确认是否有新建的文件或修改过文件还没
git add。$ git commit -am "commit message"
该命令将 add 和 commit 做了合并操作。
- 提交本地版本库到 git 服务器,如 github
把版本库内的更新推送到服务器。$ git push
- 拉取服务器的更新
$ git pull
二、git 特殊功能
-
撤销某个文件的提交 <慎用>
$ git reset HEAD <file>
此时该文件会回到之前已修改但未暂存的状态。
回到撤销之前的状态:
$ git checkout -- <file>
该文件会回到撤销之前的状态,但是修改的内容会丢失。
-
查看本地分支
$ git branch
命令行会显示一个分支名列表,有 * 的表示当前所在分支
-
创建分支
$ git branch <branch name>
-
切换分支
$ git checkout <branch name>
-
创建分支并切换到新分支
$ git checkout -b <branch name>
-
删除分支
$ git branch -d <branch name>
执行该命令前须切换到其他分支才能删除该分支。
-
合并分支
$ git merge <branch name>
合并其他分支上的东西到当前分支上
三、 git 远程库相关操作
-
查看远程仓库
$ git remote
一般 clone 下来的仓库远程仓库为 origin
-
拉取远程仓库的数据到本地
$ git fetch <remote name> <branch name>
拉取远程仓库的数据,但是不会合并到本地工作分支。
-
$ git fetch
拉取远程仓库 origin 的主分支 master上的内容 -
$ git fetch origin dev
拉取远程仓库 origin 的主分支 dev上的内容
-
-
拉去远程仓库数据到本地 并合并数据
$ git pull <remote name>
如果只有一个远程仓库,则 remote name 可以省略,默认拉取该远程仓库数据。
-
推送数据到远程仓库
$ git push <remote name> <remote branch name>
推送之前须拉取远程仓库在此次提交之前别人已推送的提交数据,否则会推送失败。
-
推送本地分支到远程仓库
$ git push --set-upstream <remote name> <branch name> $ git push -u <remote name> <branch name>
这两条命令等价
eg:推送本地分支 release 到远程仓库 origin上$ git push --set-upstream origin release
-
查看远程仓库信息
$ git remote show <remote name>
这些信息会显示 远程仓库名称、分支信息,并有相应的命令提示可以做什么操作
-
删除远程仓库和重命名
$ git remote rename <old name> <new name>
$ git remote rm <remote name>