Git常用命令(巨详细)

4,808 阅读4分钟

基本配置(配置用户名和邮箱)

git config --global user.name xxx 
git config --global user.email xxx@qq.com

创建密钥(生成的密钥默认存放在~/.ssh目录下)

ssh-keygen -t rsa -C "xxx@qq.com"

全部回车即可

初始化仓库及操作

git init (初始化一个仓库)
git add [文件名] (添加新的文件)
git commit -m [关于本次提交的相关说明] (提交)
git status (查看文件状态)
git diff   (如果文件改变,比较两个文件内容)
git add[文件名] ||  git commit -a -m [关于本次提交的相关说明] (若文文件改变,将改变的文件放到缓冲区中 || 放到缓冲区并提价)
git log (查看提交说明)
git reset --hard head~[N]  (返回到前N个版本)
git reset --hard [commit id] (回到commit id对应的版本)
git reflog (找不到commit id 时 使用该命令,显示有可能产生commit id的命令对应的commit id)

撤销修改

git checkout --[文件名] (--很重要,没有--,就变成了“切换到另一个分支”的命令)

说明: 把文件在 工作区 的修改全部撤销,这里有两种情况: 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态; 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。 总之,就是让这个文件回到最近一次git commit或git add时的状态

删除操作

git rm [文件名]

直接在windows窗口中删除 或者 使用该命令删除都可以,但是这只是工作区删除,还没有在版本库中删除。

删除后提交

git commit -m [关于本次提交的相关说明] (提交,将版本库中的文件也删除)

如果不小心删错了文件,不要怕,妹妹教你

git checkout --[文件名] (因为版本库里还有,所以可以把误删的文件恢复到最新版本)

刷新忽略文件

## git rm -r --cached . (可以用于刷新忽略文件)

远程仓库

git remote add [远程仓库名] [远程仓库地址] 
git remote rm  [远程仓库名] (git remote rm origin   删除远程仓储)
git push -u [远程仓库名] [分支名]  (把本地库的内容推送到远程 git push -u origin master 第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,当然,在以后的推送或者拉取时就可以简化命令了。)
git push [远程仓库名] [分支名]	(从现在起,只要本地作了提交,就可以通过命令:$ git push origin master 提交)
git clone是把整个git项目拷贝下来,包括里面的日志信息,git项目里的分支,你也可以直接切换、使用里面的分支等等
git pull相当于git fetch和git merge。其意思是先从远程下载git项目里的文件,然后将文件与本地的分支进行merge。
git remote -v 查看远程仓储名称
(分支)  
git branch [分支名称](创建新的分支)
git checkout [分支名称] (切换到不同分支)
git checkout -b [分支名称] (创建并切换到不同的分支)
git branch (查看当前所在的分支)
git merge [分支名称] (合并指定分支到当前分支)
git branch -d [分支名称]  (删除分支)

添加上游分支

给fork配置远程库
	使用 git remote -v 查看远程状态
 
	确定一个将被同步给 fork 远程的上游仓库  
	git remote add upstream git [git路径]
 
	再次 git remote -v  查看状态确认是否配置成功。
	同步fork,从上游仓库 fetch 分支和提交点,提交给本地 master,并会被存储在一个本地分支 upstream/master  
	git fetch upstream
 
	切换到本地主分支(如果不在的话)  
	git checkout master
 
	把 upstream/master 分支合并到本地 master 上,这样就完成了同步,并且不会丢掉本地修改的内容。  
	git merge upstream/master
 
	如果想更新到 GitHub 的 fork 上,直接  
	git push origin master 就好了。

以上是个人总结,如果有错误,请指出谢谢!妹妹码字不易,刷到点个赞么么!