Git常用命令

平时使用git管理自己这个小博客网站内容,结合经常用的一些操作,记录下来方便查阅参考,不定期修改,有错误的地方多多指正。

版本管理系统Git:
版本的分支(branch)和合并(merge)十分方便。

使用

配置

git config --list //显示当前的仓库配置
git config [--global] user.name '[name]' //设置提交时用户信息
git config [--global] user.email '[email地址]' //设置提交时用户信息

克隆项目文件

git clone <git仓库地址>
git clone <git仓库地址> <新名字> 

初始化仓库

该命令执行完后,会在当前目录下生产一个.git目录:

git init
git init url //使用指定目录

查看状态

查看哪些文件有修改:

git status

查看差异

对比修改后文件,具体修改哪些信息并打印出来:

git diff
git diff HEAD //显示工作区与当前分支最新commit之间的差异

查看日志

git log

git log --oneline //每次提交的注释

git reflog //显示当前分支最近的几次提交

添加文件到暂存区

文件至暂存区,意味着同时文件被跟踪

git add <filename>
git add . //添加当前目录下的所有文件

提交

根据暂存区内容创建提交记录

git commit
git commit -m '备注信息' //带备注信息,方便查阅
git commit -a -m '全部提交' //先把所有修改的文件放入暂存区后提交
git commit [file1] [file2...] -m '备注信息' //提交暂存区指定文件到仓库

撤销修改

git checkout --filename //将文件内容从暂存区复制到工作目录(把文件回到之前提交到暂存区时的内容)
git reset HEAD <filename> //将文件内容从上次提交复制到暂存区(修改暂存区的文件为上次的提交区的文件) 
git reset HEAD <filename>// 将内容从上次提交复制到工作目录

暂存区删除文件

git rm --cached <filename> //仅从暂存区删除
git rm <filename>  //从暂存区与工作目录删除文件

重命名

把已经git rm –cached的文件通过add添加后,对其重命名

git mv oldName newName

分支管理

git branch //列出所有本地分支
git branch -r //列出所有远程分支
git branch -a //列出所有本地分支和远程分支

git branch branchNew //新建一个branch,但依然留在当前分支
git checkout -b [branch1] [指定哪个下建立新分支] //新建一个分支branch1,并切换到该分支

git checkout [branch] //切换分支到branch

git merge [branch1] //合并指定分支branch1到当前分支(直接指向当前分支)
git merge --no-ff [branch1] //推荐(在当前分支下,生产一个新节点)

git branch -d [branch1] //删除分支branch1

远程仓库

查看远程仓库名
git remote
git remote -v //显示所有远程仓库
git remote show [remote] //显示某个远程仓库的信息


建立仓库

把本地仓库和远程仓库关联起来,如果不执行,每次push时需要制定远程服务器的地址:

git remote add [newname] [url] //增加一个新远程仓库并命名

git remote add origin git@github.com:用户名/仓库名.git
推送至远程仓库
git push [remote] [branch] //上传本地指定分支到远程仓库
git push [remote] --force //强行推送当前分支到远程仓库,即使有冲突
git push [remote] --all //推送所有分支到远程仓库

git push origin master //推送远程仓库
取回远程仓库
git pull [remote] [branch] //取回远程仓库的变化,并与本地分支合并
更新本地
git fetch [remote] //下载远程仓库的所有变动

demo

cd project
git init
git add .
git commit -m 'commit'
git remote add origin git@github.com:gzyq/demo.git
git push origin master

git checkout -b branch1 master
git cheokout master
git merge --no-ff branch1
git branch -d branch1

其他

ls 查看目录下的所有文件