不详细介绍了, 详情 Google 一下更精彩
先设置全局的姓名和邮箱, 让人知道是谁修改的 注意带双引号
git config --global user.name "xxx" git config --global user.email "xxx@xxx.com"生成密钥
ssh-keygen -t rsa -C "xxx@xxx.com"按三个回车, 密码为空.
生成成功后,去对应目录 C:\Users\acmaker.ssh里( acmaker 为电脑用户名, 找到自己的用户名 ) 用记事本打开id_rsa.pub,复制ssh key公钥 然后到 GitHub 上, Settings, SSH and GPK keys, 添加一个 ssh 这样本地 Git 就关联到 GitHub 了
首先进入工作区目录, 初始化本地仓库
git init关联远程仓库
git remote add origin 仓库url取消关联
git remote rm origin注意把工作区所有文件修改的文件加入到暂缓区, 这个命令有个点
git add .把工作区所有的文件加入到暂缓区
git add --all添加一个文件
git add test.cpp此时可能会产生本地仓库和远程仓库内容不同的错误 fatal: refusing to merge unrelated histories
远程仓库GitHub 初始化的时候一般是选择生成一个 README.md , 而本地项目是没有这个的, 所以导致本地仓库和远程仓库不符 这个时候或者手动删除远程仓库的 README.md 或者 强行拉下来, 如下
git pull origin master --allow-unrelated-histories或者强行 推上去, 如下
git push -u origin master -f使得两个仓库同步起来,
查看版本提交日志 完整日志
git log精简日志
git log --pretty=oenline回退到上一个版本
git reset --hard HEAD^回退到上上个版本
git reset --hard HEAD^^回退到一百个之前的版本…
git reset --hard HEAD~100回退到指定版本, 1933a是版本号id前几位
git reset --hard 1933a查看发送过的命令日志
git reflog查看工作区有哪些文件改动
git status查看工作区某文件的改动内容
git diff HEAD -- readme.txt丢弃工作区所有更改, 从暂缓区恢复( 前提是没有添加到 暂存区 )
git checkout -- <file>丢弃暂缓区里的更改, 从主分支恢复 ( 前提是没有提交到 主分支 )
git reset HEAD <file>丢弃主分支里的更改, 看版本回退那一节
这是删除 暂存区 所有更改
git rm --cached <file>** 介绍一种 一二命令的糅合, 直接从 主分支 恢复 上次提交到主分支的内容
git checkout HEAD <file>在被 git 管理的目录中删除文件时,可以选择如下两种方式来记录删除动作:
rm + git commit -am "abc" git rm + git commit -m "abc"另外,git add . 仅能记录添加、改动的动作,删除的动作需靠 git rm 来完成。 最后,rm 删除的文件是处于 not staged 状态的, 也就是一种介于 “未改动” 和 “已提交过” 之间的状态。
删除文件夹
git rm -r mydir关联仓库
git remote add origin git@server-name:path/repo-name.git第一次关联以后, 推送所有内容, 一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
git push -u origin master以后推送
git push origin master查看分支
git branch创建分支
git branch <name>切换分支
git checkout <name> 或者 git switch <name>创建 并 切换分支
git checkout -b <name> 或者 git switch -c <name>合并某分支到当前分支
git merge <name>删除分支
git branch -d <name> 点击传送廖老师的详细讲解…
git stash用于保存和恢复工作进度 git stash 保存当前的工作进度。会分别对暂存区和工作区的状态进行保存 git stash save "message..." 这条命令实际上是第一条 git stash 命令的完整版 git stash list 显示进度列表。此命令显然暗示了git stash 可以多次保存工作进度,并用在恢复时候进行选择 git stash pop [--index] [<stash>] 如果不使用任何参数,会恢复最新保存的工作进度,并将恢复的工作进度从存储的工作进度列表中清除。 如果提供参数(来自 git stash list 显示的列表),则从该 <stash> 中恢复。恢复完毕也将从进度列表中删除 <stash>。 选项--index 除了恢复工作区的文件外,还尝试恢复暂存区。 git stash apply [--index] [<stash>] 除了不删除恢复的进度之外,其余和 git stash pop 命令一样 git stash clear 删除所有存储的进度如果关联报错, 可以如下命令查看指向的远程库信息
git remote -v然后删除之前关联的远程库
git remote rm origin如果要关联多个远程库, 需要自定义命名远程分支
git remote add github GitHubRepository git remote add gitee GiteeRespository --------- 推送的时候就需要 git push github master git push gitee master.gitignore
检查 某文件 被哪个命令忽略了
git check-ignore具体忽略指定文件的语法看文章底部, 其他 Git 命令
局部配置文件是在当前仓库 .git/config
git config --global alias.st status git config --global alias.co checkout git config --global alias.ci commit git config --global alias.br branch git config --global alias.unstage 'reset HEAD'在工作区根目录下, 新建一个 .gitignore 更多语法 Google 一下
*.exe *.ini /Temporary # 忽略 .a 文件 *.a # 但否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件 !lib.a # 仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO /TODO # 忽略 build/ 文件夹下的所有文件 build/ # 忽略 doc/notes.txt, 不包括 doc/server/arch.txt doc/*.txt # 忽略所有的 .pdf 文件 在 doc/ directory 下的 doc/**/*.pdfCRLF : windows 环境下的换行符 LF : linux 环境下的换行符 就是说文件中存在两种环境的换行符, git 会自动替换 CRLF 为 LF, 所以提示警告 解决方案:
git config core.autocrlf false //将设置中自动转换功能关闭GitHub 可以删除仓库, 但是不能删除某一个文件或者文件夹
但是我们可以在本地建一个仓库, 把他拉下来, 然后全删了, 再提交
emm, 虽然是有点笨, 但是对于菜鸟来说简单易用就就行 hhh
Git 科普文 配置密钥 及 上传本地仓库
