git常用命令说明


记录我常用的git命令


1. 配置git

1.1设置全局参数

为了使用方便,需要设置全局的用户名、Email地址。

git config --global user.name "Fan Hongtao"
git config --global user.email "fanhongtao@gmail.com"

1.2 显示中文

msysgit 使用 ls 无法显示中文,可以在git安装目录下的 etc/git-completion.bash 中添加如下语句

alias ls="ls --show-control-chars"

也可以将上面的语句添加到 HOME 目录下的 .bashrc 文件中。

1.3 配置proxy

如果需要通过proxy才能访问网络,可以这样配置:

git config --global  http.proxy  http://foo_proxy:80

2. 仓库(repository)管理

2.1 创建纯仓库

mkdir my_project.git
cd my_project.git
git init --bare

2.2 Windows服务器上搭建git最小步骤

将一个包含.git目录的工作目录 my_project 克隆成为一个纯仓库, 然后将 my_project.git 目录拷贝到服务器上某个共享目录即可。

git clone --bare  my_project  my_project.git
xcopy /e my_project.git  \\sharedir\my_project.git

2.3 从服务器克隆git仓库

git clone -b test1 git@gitserver:~git/my_project.git

将服务器gitserver上git用户下my_project仓库中test1分支克隆到当前目录。

对于在windows共享目录上的git仓库,可以这样克隆

git clone //sharedir/my_project.git

2.4 将内容推到一个新的仓库

git remote add origin git@gitserver:~git/new_project.git
git push origin master
  1. 为当前仓库关联一个远端的仓库,命名为“origin”,远端地址是 git@gitserver:~git/new_project.git
  2. 将当前仓库(当前branch)的内容提交至origin的master分支

3 基本维护命令

git diff                # 显示工作目录与本地仓库中内容的区别
git diff --staged       # 显示工作目录与索引的区别
git add xxx             # 将当前目录下的xxx文件添加到索引
git commit -m "desc"    # 将索引中的内容提交到本地仓库,提交的描述信息为 desc
git log --name-status   # 显示提交记录及对对应的文件名字

4 分支

4.1 创建本地分支

git checkout -b iss53   # 创建一个名为iss53的分支,并将当前工作目录切换到iss53分支

该命令等同于如下两条命令

git branch iss53        # 创建一个名为iss53的分支
git checkout iss53      # 将工作目录切换到iss53分支

4.2 分支合并

先切换到待合入的目标分支,再执行git merge

git checkout master     # 切换到master分支
git merge hotfit        # 将hotfix分支上的内容合并到master分支
git branch -d hotfix    # 删除hotfix分支(因为内容已经在master上了)(可选步骤)

对于合并时有冲突的文件,可以通过如下命令来启动编辑工作修改并合并冲突文件

git mergetool filename

4.3 分支管理

git branch              # 列出所有分支,当前分支前有一个星号(*)
git branch -v           # 列出所有分支,及各分支最后一次commit信息
git branch --merged     # 列出已经与当前分支合并的分支
git branch --nomerged   # 列出还没有与当前分支合并的分支

4.4 远程分支

命令格式: git push 远端仓库名 分支名[:远端分支名]

git push origin master      # 取本地的master分支,更新到origin上的master分支
git push origin master:br1  # 取本地的master分支,更新到origin上的br1分支
git push origin :br1        # 删除远端的br1分支(命令的本意是取本地的空分支,更新br1)
git branch -r               # 查看有那些远端分支
git checkout --track [远端名]/[分支名]     # 将远端分支检出为本地分支,本地分支与远端分支名相同
git checkout -b [本地分支名] [远端名]/[分支名] # 将远端分支检出为本地分支,本地分支名由自己指定

5 标签(Tags)

git tag v1.5            # 创建一个名为v1.5的标签(在当前分支,当前已commit的内容)
git tag v1.2 gfceb02    # 为校验和为gfceb02的提交内容打标签
                        #   校验和只用写前几位,只要在仓库中不重复即可

默认情况下,git push 并不会将标签推送到远端服务器上,需要显示使用命令来实现推送:

git push origin v1.5    # 将名为v1.5的标签推送到服务器
git push origin --tags  # 将本地(新增)的标签全部推送到服务器

声明: 本文采用 CC BY-NC-SA 3.0 协议进行授权,转载请注明出处。