Git常用命令集合
刻意练习
现代的ide里面都集成了很多Git
,Maven
的操作命令,让开发者点一点就很容易执行一些用命令执行起来很麻烦的操作,使用起来非常方便.但如果不了解背后的命令,我们很难做到精通使用,过于依赖现代ide里面提供的功能.我也是遇到了一些问题后才开始慢慢觉得只在页面上点点点的操作的弊端,现在我能用命令的操作Git
,maven
,不再用idea里面提供的点点点的功能.直到所有命令都烂熟于心的时候我再点点点.下面是一些我用过的Git
操作命令,有些复杂,有些简单,希望看过能对你们的工作有所益处.
如何删除一些之前没有加.ingore时候提交的一些垃圾文件
在上传工程到git上时,有时候会把本地的一些eclipse,idea配置文件传到服务器上,这时你先删除本地,再同步服务器,显然是不合理的。git提供了一个好的解决方法,可以直接删除服务器文件,同时不影响本地文件,命令如下
git rm --cached filename/-r directory
git commit "xxxx"
git push
- 删除服务器<u>文件</u>,本地保留
git rm --cached useless.log
git commit -m "remove file from remote repository"
git push
- 删除远程useless <u>文件夹</u>,本地保留
一定要注意,删除文件夹要使用-r 参数
相比文件只是多了一个'-r', '-r'是‘-recursive’的意思,就是递归地。
git rm --cached -r useless
git commit -m "remove directory from remote repository"
git push
其他Git常用命令
-
初始化仓库
git init
-
将文件添加到仓库
git add test.txt # 将工作区的某个文件添加到暂存区 git add . # 将当前工作区的所有文件都加入暂存区
-
将暂存区文件提交到本地仓库
git commit -m "提交说明" # 将暂存区内容提交到本地仓库 git commit -a -m "提交说明" # 跳过缓存区操作,直接把工作区内容提交到本地仓库
-
查看仓库当前状态
git status
-
查看历史记录
git log #查看所有commit记录(SHA-A校验和,作者名称,邮箱,提交时间,提交说明) git log -p -次数 # 查看最近多少次的提交记录 git log --stat # 简略显示每次提交的内容更改 git log --name-only # 仅显示已修改的文件清单 git log --name-status # 显示新增,修改,删除的文件清单 git log --oneline # 让提交记录以精简的一行输出
-
代码回滚
git reset HEAD^ # 恢复成上次提交的版本 git reset HEAD^^ # 恢复成上上次提交的版本,就是多个^,以此类推或用~次数 git reflog git reset --hard 版本号 --soft:只是改变HEAD指针指向,缓存区和工作区不变; --mixed:修改HEAD指针指向,暂存区内容丢失,工作区不变; --hard:修改HEAD指针指向,暂存区内容丢失,工作区恢复以前状态;
-
同步远程仓库
git push -u origin master
-
删除版本库文件
git rm 文件名
-
从远程仓库克隆项目到本地
git clone git@github.com:git帐号名/仓库名.git
-
创建分支
git checkout -b dev # -b表示创建并切换分支
-
合并分支
git merge dev #用于合并指定分支到当前分支 git merge --no-ff -m "merge with no-ff" dev # 加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并
-
删除分支
git branch -d dev git push origin --delete test
-
查看分支合并图
git log --graph --pretty=oneline --abbrev-commit
-
查看远程库信息
git remote -v
-
git相关配置
# 安装完Git后第一件要做的事,设置用户信息(global可换成local在单独项目生效): git config --global user.name "用户名" # 设置用户名 git config --global user.email "用户邮箱" #设置邮箱 git config --global user.name # 查看用户名是否配置成功 git config --global user.email # 查看邮箱是否配置
-
撤消某次提交
git revert HEAD # 撤销最近的一个提交 git revert 版本号 # 撤销某次commit
-
拉取远程分支到本地仓库
git checkout -b 本地分支 远程分支 # 会在本地新建分支,并自动切换到该分支 git fetch origin 远程分支:本地分支 # 会在本地新建分支,但不会自动切换,还需checkout git branch --set-upstream 本地分支 远程分支 # 建立本地分支与远程分支的链接
-
刷新远端分支列表
git remote update origin --prune
更新操作
删除项目下远端分支的*.iml
或者*.project
的文件
find . -name "*.iml" | xargs git rm --cached
find . -name "*.project" | xargs git rm --cached
git commit -m "remove directory from remote repository"
git push
例:删除/home/raven下,包括子目录里所有名为abc.txt的文件:
find /home/raven -name abc.txt|xgrgs rm -rf
网友评论