git init
初始化项目所在目录,初始化后会在当前目录下出现一个名为 .git 的目录。
初始化本地仓库,在当前目录下生成 .git 文件夹
$ git init
git log
显示提交的记录。
打印所有的提交记录
$ git log
打印从第一次提交到指定的提交的记录
$ git log <commit ID>
打印指定数量的最新提交的记录
$ git log -<指定的数量>
git merge
用于将两个或两个以上的开发历史加入(合并)一起。
把指定的分支合并到当前所在的分支下,并自动进行新的提交
$ git merge <分支名称>
把指定的分支合并到当前所在的分支下,不进行新的提交
$ git merge --no-commit <分支名称>
git mv
重命名文件或者文件夹。
重命名指定的文件或者文件夹
$ git mv <源文件/文件夹> <目标文件/文件夹>
git pull
从远程仓库获取最新版本并合并到本地。 首先会执行 git fetch,然后执行 git merge,把获取的分支的 HEAD 合并到当前分支。
从远程仓库获取最新版本。
$ git pull
git push
把本地仓库的提交推送到远程仓库。
把本地仓库的分支推送到远程仓库的指定分支
$ git push <远程仓库的别名> <本地分支名>:<远程分支名>
删除指定的远程仓库的分支
$ git push <远程仓库的别名> :<远程分支名> $ git push <远程仓库的别名> --delete <远程分支名>
git remote
操作远程库。
列出已经存在的远程仓库
$ git remote
列出远程仓库的详细信息,在别名后面列出URL地址
$ git remote -v $ git remote --verbose
添加远程仓库
$ git remote add <远程仓库的别名> <远程仓库的URL地址>
修改远程仓库的别名
$ git remote rename <原远程仓库的别名> <新的别名>
删除指定名称的远程仓库
$ git remote remove <远程仓库的别名>
修改远程仓库的 URL 地址
$ git remote set-url <远程仓库的别名> <新的远程仓库URL地址>
git reset
还原提交记录。
重置暂存区,但文件不受影响
相当于将用 “git add” 命令更新到暂存区的内容撤出暂存区,可以指定文件
没有指定 commit ID 则默认为当前 HEAD
$ git reset [<文件路径>] $ git reset --mixed [<文件路径>]
将 HEAD 的指向改变,撤销到指定的提交记录,文件未修改
$ git reset <commit ID> $ git reset --mixed <commit ID>
将 HEAD 的指向改变,撤销到指定的提交记录,文件未修改
相当于调用 “git reset --mixed” 命令后又做了一次 “git add”
$ git reset --soft <commit ID>
将 HEAD 的指向改变,撤销到指定的提交记录,文件也修改了
$ git reset --hard <commit ID>
git revert
生成一个新的提交来撤销某次提交,此次提交之前的所有提交都会被保留。
生成一个新的提交来撤销某次提交
$ git revert <commit ID>
git rm
删除文件或者文件夹。
移除跟踪指定的文件,并从本地仓库的文件夹中删除
$ git rm <文件路径>
移除跟踪指定的文件夹,并从本地仓库的文件夹中删除
$ git rm -r <文件夹路径>
移除跟踪指定的文件,在本地仓库的文件夹中保留该文件
$ git rm --cached
git status
用于显示工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些没有, 哪些文件没有被 Git tracked 到。
查看本地仓库的状态
$ git status
git status 不显示已经 commit 到项目历史中去的信息。
看项目历史的信息要使用 git log。
git tag
操作标签的命令。
打印所有的标签
$ git tag
添加轻量标签,指向提交对象的引用,可以指定之前的提交记录
$ git tag <标签名称> [<commit ID>]
添加带有描述信息的附注标签,可以指定之前的提交记录
$ git tag -a <标签名称> -m <标签描述信息> [<commit ID>]
切换到指定的标签
$ git checkout <标签名称>
查看标签的信息
$ git show <标签名称>
删除指定的标签
$ git tag -d <标签名称>
将指定的标签提交到远程仓库
$ git push <远程仓库的别名> <标签名称>
将本地所有的标签全部提交到远程仓库
$ git push <远程仓库的别名> –tags