Day26-Git

tips: 建远程库时最好有 README .md, 别空空荡荡的

区别其他版本控制
git 分为工作区, 版本库的暂存区和版本库的分支
git 操作的是文件的修改, 而不是文件. 我们在工作区修改过的文件 add 后进入暂存区, 再接着第二次修改后, 如果不 add, 直接 commit, 提交到分支里的是暂存区里的第一次修改

HTTPS 和 SSH

TODO

1. 建库

cd [localUrl]   进入本地目录
git init    初始化git
git remote add origin [remoteUrl]    关联远程仓库, origin 是远程库的默认代称.

2. 拉取

git pull origin master    拉取master分支里的仓库. master是默认主分支名称
或者
git clones [remoteUrl]    直接拉取全部仓库到本地

3. 提交

git add xxx
git commit -m "提交信息"
git push -u origin master   将本地的master分支推送到origin主机, 同时指定origin为默认主机
之后的提交不用-u, 直接 git push origin master就行

4. 后悔药-版本

git log    查看详细提交信息,版本号等
git log --pretty=oneline    查看精简提交信息, 只有版本号和提交描述
git reset --hard HEAD^    回退上一个版本, HEAD^^回退上上个版本, HEAD~100往上100个版本
git reset xxxxxx    穿越到指定版本, 版本号还不必写全, git会自行查找, 但也不能太短
git reflog    再次打开terminal时查看之前用过的命令

5. 查看工作区

git status    查看工作区哪些文件修改了, 修改的记得add.

6. 后悔药-操作

git checkout -- file    撤销修改.一定要加--, 不然checkout是在切换分支.
cheout的结果: 1.只是修改, 回到修改前. 2.add进暂存区后又改了文件, 回到修改前也就是add后的
git reset file    撤销add.

7. 删除

git rm file
git commit -m "删除描述"

8. 分支

git checkout -b dev    创建并选择分支== git checkout dev + git branch dev.
git branch    查看所有分支
git branch dev    创建dev分支
git checkout dev    选择dev分支
在dev分支操作一同后, 开始合并
git merge dev    dev合并进master
git branch -d dev    删掉dev, 强行删除把 D 大写

git log --graph    查看分支合并图
git merge --no-ff -m "保留分支信息的合并描述" dev   以后能看出这里做过合并

9. 临时保存现场

git stash    保存现场
git stash pop    恢复现场.并删除stash
或
git stash apply    恢复现场, 删除需要自己 git stash drop
git stash list    查看stash列表
git stash apply stash@{0}    恢复指定stash

10. 给提交打 tag

git tag v1.0    打tag, 默认给最新的commit
git tag vx 622222    给指定commit 打tag
git tag    查看tag
git tag -a v0.1 -m "version 0.1 released" 3628164    用 -a 指定 tag 创建说明文字 -m
git tag -s v0.2 -m "signed version 0.2 released" fec145a    给tag上密钥
git -d tag v0.1    删除tag

11. tag 推送到远程

git push origin v1.0
git push origin --tags    推送全部 tag
如果已经推送到远程, 删除tag会麻烦一点
git tag -d v0.9    先删除本地tag
git push origin :refs/tags/v0.9    在删除远程tag

拉取单个文件夹参考

  1. 初始化新仓库
    git init
    cd
    git remote add –f
  2. 打开 sparse-checkout 特性
    git config core.sparsecheckout true
  3. 配置.git/info/sparse-checkout, 列出你想要的 checkout 目录
    echo some/dir/ >> .git/info/sparse-checkout
    echo another/sub/tree >> .git/info/sparse-checkout
  4. 拉取.(remote == name, branch 通常为 master)
    git pull

报错

Everything up-to-date

  1. 没有 git add.
  2. 没有 git commit -m "提交信息"

Couldn't find remote ref master

  1. 仓库里什么都没, readme,.gitignore.....

参考

  • Everything up-to-date
  • 廖雪峰的git

你可能感兴趣的:(Day26-Git)