虽然用了挺久的github,好多git命令还是有些一知半解,大概归纳下吧。(非教学向,博主自己好多东西还没搞透彻...)
首先是安装配置和基本教程:Git 安装配置
这里只是记录下我觉得比较常用的操作和以后碰到的一些小技巧之类的,很多操作基于上述runoob教程。
初始化一个本地仓库,在同级目录下会出现一个隐藏的.git文件
$ git init #初始化还是挺关键的,此为在当前目录下建立.git
$ git init name0 #建立新文件夹name0并在其目录下建立.git
$ rm -rf .git #删除本地仓库=删除仓库文件夹下隐藏的.git文件夹即可
查看当前个人配置信息
$ git config --list
查看当前远程仓库,后面加参数-v可以查看对应地址
$ git remote
$ git remote -v
添加新的远程仓库,可以指定一个简单的名字,以便将来引用。(后面url输错可以执行,后面更新啥的会出错)
$ git remote add [shortname] [url]
例:$ git remote add example https://github.com/jingyile/example.git
删除远程仓库
$ git remote rm [shortname]
推送到远程仓库,三步走(假设操作文件test.txt已存在)
$ git add test.txt # 把文件添加进去,实际上就是把文件修改添加到暂存区
$ git commit -m "备注信息" # 提交更改,实际上就是把暂存区的所有内容提交到当前分支。
$ git push origin master # 推送到 Github (origin为之前设置的仓库别名)
可能会出现本地和远程仓库不一致导致的更新被拒绝,可先pull 或者使用强制更新(可能会出现意想不到的问题.)
$ git pull origin master
$ git push -u origin +master #慎用,会清空远程仓库原来内容而与本地保持一致
关于git push的参数问题,引用简书。
$ git push origin
上面命令表示,将当前分支推送到origin主机的对应分支。
如果当前分支只有一个追踪分支,那么主机名都可以省略。
$ git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,
这样后面就可以不加任何参数使用git push。
$ git push -u origin master 上面命令将本地的master分支推送到origin主机,
同时指定origin为默认主机,后面就可以不加任何参数使用git push了。
不带任何参数的git push,默认只推送当前分支,这叫做simple方式。
此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。
Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。
作者:51cf68e144ad
链接:https://www.jianshu.com/p/dd864fcee643
来源:简书
查看当前工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些没有, 哪些文件没有被Git tracked到。
参考文章:git status的用法--无聊达612
$ git status
$ git rm --cached 文件名 # 取消暂存
关于删除文件,假设此时在本地仓库中删除6.xtx(可直接在文件夹中删除)
$ git status # 查看状态,会提示一个文件已删除
$ git add 6.txt #加入这个删除的文件(即修改过的文件) 检测的是状态
$ git commit -m '6'
$ git push -u origin master
查看提交历史
$ git log
$ git log --oneline #简洁版本
下载远程仓库于本地
$ git clone https://xxx.git [name] # 本地文件夹名,若不设置,则会自动创建同名文件夹
$ git clone -b [分支名] https://xxx.git [name] # 选取某个分支下载,注意是分支....
暂存工作区与取出
git stash #暂存
git stash pop //取出修改
Git - stash(暂存区) 用法
Git提交时出现Merge branch 'master' of ...之解决方法
git config --global pull.rebase true
万一不小心提交了本不应该提交的内容,而且已经push到远程库,那么就需要撤销这次提交。
git revert commit_id //commit_id指该次提交的commit_id
例如: git revert 3a85fafad499527294eaa16f12d87c738e39c086
这就相当于又进行了一次反向提交覆盖这次。(即回到原来的版本,但是本地库也会被覆盖,一定要注意备份需要的东西,或者在上次提交记录里也可以找到。)
如果需要切换当前所登录的用户和邮箱
# 修改全局
git config --global user.name 目标用户名
git config --global user.email 目标邮箱名
# 修改当前项目
git config user.name 目标用户名
git config user.email 目标邮箱名
未完、、待续、、、、、