Git常用基础命令

起步

用户信息

配置你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:

$ git config --global user.name “youname”
$ git config --global user.email “12345@example.com”

如果用了 —global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 —global 选项重新配置即可,新的设定保存在当前项目的 .git/config文件里。

GIT基础

查看配置信息

查看已有的配置信息

$ git config --list
$ git config -l

获取帮助

例如想获取config命令的帮助信息

$ git help config 
$ git config --help

初始化新仓库

$ git init

初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。不过目前,仅仅是按照既有的结构框架初始化好了里边所有的文件和目录,但我们还没有开始跟踪管理项目中的任何一个文件。

如果当前目录下有几个文件想要纳入版本控制,需要先用git add命令告诉 Git 开始对这些文件进行跟踪,然后提交:
跟踪文件:(将文件加到暂存区域)

$ git add readme.txt

跟踪全部文件

$ git add .

提交更新

$ git commit -m “first version”

上传(推送)到github

$ git push origin master

从现有仓库克隆

$ git clone git://github.com/youname/project.git
$ git clone git@github.com:youname/project.git
$ git clone https://github.com/youname/project.git

检查当前文件状态

$ git status

创建.gitignore文件

$ touch .gitignore

查看修改之后没有暂存起来的内容

$ git diff

移除文件

$ git rm readme.txt

重命名文件

$ git mv oldname.txt newname.txt

查看提交历史

$ git log

取消暂存

$ git reset HEAD readme.txt

添加远程仓库(远程仓库必须先在github上建好)

$ git remote add [shortname] [url]

实例:

$ git remote add origin git@github.com:youname/yourRepo.git

推送数据到仓库

$ git push [remote-name] [branch-name]

如果要把本地的 master 分支推送到origin服务器上(再次说明下,克隆操作会自动使用默认的master 和origin 名字),可以运行下面的命令:

$ git push origin master

从远程仓库抓取数据

$ git fetch [remote-name]

碰到远端仓库服务器迁移,或者原来的克隆镜像不再使用,又或者某个参与者不再贡献代码,那么需要移除对应的远端仓库

远程仓库的删除

$ git remote rm origin

远程仓库重命名(此处命名的是上文添加远程仓库中的shortname)

$ git remote rename origin origin2

自动补全

输入命令后按tab键,就会看到列出所有匹配的可用命令建议:

$ git co<tab>

GIT分支

创建一个名为“testing”的分支

$ git branch testing

切换到“testing”分支(默认为master分支)

$ git checkout testing

新建并切换到该分支

$ git checkout -b iss53

这条命令相当于执行下面这两条命令

$ git branch iss53
$ git checkout iss53

删除hotfix分支(如果该分支还未被合并则会提示错误,因为这样会丢失数据)

$ git branch -d hotfix

强制删除hotfix分支(强制删除,不会提示错误)

$ git branch -D hotfix

合并iss53分支(先切换到master分支)

$ git checkout master
$ git merge iss53

查看当前所有分支

$ git branch

查看各个分支最后一个提交对象的信息

$ git branch -v

查看已经与当前分支合并的分支(已经合并的查出来后可以删掉)

$ git branch --merge

查看未与当前分支合并的分支

$ git branch --no-merged

同步远程服务器数据到本地

$ git fetch origin

从新添加的远程仓库下载数据

$ git remote add teamone git://git.team1.ourcompany.com
$ git fetch teamone

分化一个新的分支(使用这个命令会从服务器上下载master最新的版本,所以如果当前本地版本不是最新的,新的分支和本地分支会不同)

$ git checkout -b test1 origin/master

假如你用这个新的分支进行git push,并且通过了合并,那么会在远程仓库建立一个新的同名分支
删除该分支的方法
$ git push origin :test1

分支的衍合:将test1分支衍合到master主分支

$ git checkout test1
$ git rebase master

另一种方法,直接衍合,不用再先切换到test1

$ git rebase master test1

衍合:一旦分支中的提交对象发布到公共仓库,就千万不要对该分支进行衍合操作。

快进master分支

$ git checkout master
$ git merge client
文章目录
  1. 1. 起步
  2. 2. GIT基础
    1. 2.1. 查看配置信息
    2. 2.2. 获取帮助
    3. 2.3. 初始化新仓库
    4. 2.4. 跟踪全部文件
    5. 2.5. 提交更新
    6. 2.6. 上传(推送)到github
    7. 2.7. 从现有仓库克隆
    8. 2.8. 检查当前文件状态
    9. 2.9. 创建.gitignore文件
    10. 2.10. 查看修改之后没有暂存起来的内容
    11. 2.11. 移除文件
    12. 2.12. 重命名文件
    13. 2.13. 查看提交历史
    14. 2.14. 取消暂存
    15. 2.15. 添加远程仓库(远程仓库必须先在github上建好)
      1. 2.15.1. 实例:
    16. 2.16. 推送数据到仓库
    17. 2.17. 从远程仓库抓取数据
    18. 2.18. 远程仓库的删除
    19. 2.19. 远程仓库重命名(此处命名的是上文添加远程仓库中的shortname)
    20. 2.20. 自动补全
  3. 3. GIT分支
    1. 3.1. 创建一个名为“testing”的分支
    2. 3.2. 切换到“testing”分支(默认为master分支)
    3. 3.3. 新建并切换到该分支
    4. 3.4. 删除hotfix分支(如果该分支还未被合并则会提示错误,因为这样会丢失数据)
    5. 3.5. 强制删除hotfix分支(强制删除,不会提示错误)
    6. 3.6. 合并iss53分支(先切换到master分支)
    7. 3.7. 查看当前所有分支
    8. 3.8. 查看各个分支最后一个提交对象的信息
    9. 3.9. 查看已经与当前分支合并的分支(已经合并的查出来后可以删掉)
    10. 3.10. 查看未与当前分支合并的分支
    11. 3.11. 同步远程服务器数据到本地
    12. 3.12. 从新添加的远程仓库下载数据
    13. 3.13. 分化一个新的分支(使用这个命令会从服务器上下载master最新的版本,所以如果当前本地版本不是最新的,新的分支和本地分支会不同)
    14. 3.14. 分支的衍合:将test1分支衍合到master主分支
    15. 3.15. 快进master分支
|