git的使用方法

Git常用的基础命令

起步

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

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

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

GIT基础

查看配置信息
查看已有的配置信息

1
2
$ git config --list
$ git config -l

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

1
2
$ git help config
$ git config --help

初始化新仓库

1 $ git init

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

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

1 $ git add readme.txt

跟踪全部文件

1 $ git add .

提交更新

1 $ git commit -m “first version”

上传(推送)到github

1 $ git push origin master

从现有仓库克隆

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

检查当前文件状态

1 $ git status

创建.gitignore文件

1 $ touch .gitignore

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

1 $ git diff

移除文件

1 $ git rm readme.txt

重命名文件

1 $ git mv oldname.txt newname.txt

查看提交历史

1 $ git log

取消暂存

1 $ git reset HEAD readme.txt

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

1 $ git remote add [shortname]

实例:

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

推送数据到仓库

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

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

1 $ git push origin master

从远程仓库抓取数据

1 $ git fetch [remote-name]

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

1 $ git remote rm origin

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

1 $ git remote rename origin origin2

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

1 $ git co<tab>

GIT分支

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

1 $ git branch testing

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

1 $ git checkout testing

新建并切换到该分支

1 $ git checkout -b iss53

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

1
2
$ git branch iss53
$ git checkout iss53

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

1 $ git branch -d hotfix

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

1 $ git branch -D hotfix

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

1
2
$ git checkout master
$ git merge iss53

查看当前所有分支

1 $ git branch

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

1 $ git branch -v

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

1 $ git branch --merge

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

1 $ git branch --no-merged

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

1 $ git fetch origin

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

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

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

1 $ git checkout -b test1 origin/master

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

1 $ git push origin :test1

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

1
2
$ git checkout test1
$ git rebase master

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

1 $ git rebase master test1

快进master分支

1
2
$ git checkout master
$ git merge client

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

版权声明:本文为博主原创文章,转载请注明出处DannyWu's Blog

 

weinxin
我的微信
有问题微信找我
DannyWu

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

Protected with IP Blacklist CloudIP Blacklist Cloud