type
status
date
slug
summary
tags
category
icon
password
git常用
配置远程仓库
配置远程仓库
git remote add origin '(https)'
拉取远程仓库的全部内容
git pull
查看本地已有的分支
查看本地已有分支
git branch
查看所有分支,包含远程分支
git branch -a
查看本地分支与远程分支对应关系
git branch -vv
配置本地分支对应到远程分支
创建分支并切换分支,同时对应到远程分支
git checkout -b devbranch origin/devbranch
如果已有本地分支则可以使用
git checkout devbranch
切换到本地分支,通过 git branch –set-upstream-to 命令设置关联git branch --set-upstream-to=origin/remote_branch yourbranch
拉取远程分支
git pull
或者git fetch origin
可以拉取所有远程分支使用
git pull origin devbranch
命令可以拉取单远程分支推送到远程分支
- 获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败)
git pull --rebase origin devbranch
- 使用命令
git push origin devbranch
推送分支到远程仓库
git add后撤销
执行完
git add .
才发现没有在对应的分支,如何撤回呢?可以参考下面的方法:
文件退出暂存区,但是修改保留:
git reset --mixed
撤销所有的已经 add 的文件:
git reset HEAD .
撤销某个文件或文件夹:
git reset HEAD -filename
另外:可以用
git status
Git 会告诉你可以通过那个命令来执行操作。
除了git reset
,还可以使用git clean
git clean命令用来从你的工作目录中删除所有没有tracked过的文件,reset只影响被track过的文件, 所以需要clean来删除没有track过的文件. 结合使用这两个命令能让你的工作目录完全回到一个指定的的状态git clean -n 是一次clean的演习, 告诉你哪些文件会被删除. 记住他不会真正的删除文件, 只是一个提醒 git clean -f 删除当前目录下所有没有track过的文件. 他不会删除.gitignore文件里面指定的文件夹和文件, 不管这些文件有没有被track过 git clean -f <path> 删除指定路径下的没有被track过的文件 git clean -df 删除当前目录下没有被track过的文件和文件夹 git clean -xf 删除当前目录下所有没有track过的文件. 不管他是否是.gitignore文件里面指定的文件夹和文件
撤销的延伸
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令:
git checkout -- file
。场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令
git reset HEAD <file>
,就回到了场景1,第二步按场景1操作。场景3:已经提交了不合适的修改到版本库时(即
git commit
),想要撤销本次提交,参考版本回退git reset --hard
,不过前提是没有推送到远程库。 >在Git中,用HEAD表示当前版本,上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100如果版本回退后又想回到回退前,使用git reset --hard 43262b0,43262b0是git log --oneline查到的commit id,可以简写,git自动查找简写对应的完整ID
git删除远程文件夹或文件
- 预览将要删除的文件
git rm -r --cached -n 文件/文件夹名称 加上 -n 这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览。 加上--cached 不会删除本地同名文件
- 确定无误后删除文件
git rm -r --cached 文件/文件夹名称
- 提交到本地并推送到远程服务器
git commit -m "提交说明"git push origin master