修改项目中的个人信息
1 | git config --global user.name "name" |
config
1 | git config --global user.name "name" //设置提交的用户名 |
help
git help config
//获取帮助信息
配置自动换行
git config --global core.autorlf input
//提交到git是自动将换行符转换为If
配置公钥
ssh-keygen -t rsa -C "1069304584@qq.com"
//生成密钥ssh -T git@github.com
//测试是否成功
多账号 ssh 配置
1、生成指定名字的密钥
ssh-keygen -t rsa -C "邮箱地址" -f ~/.ssh/github_new
会生成 github_new
和github_new.pub
这两个文件
2、密钥复制到托管平台
vim ~/.ssh/github_new.pub
打开公钥文件 github_new.pub
,并把内容复制到代码托管平台上
3、修改config文件
vim ~/.ssh/config
//修改config文件,如果没有创建config
4、测试
ssh -T git@jslite.github.com
//@后面跟上定义的Host
找回误操作删除的代码
git fsck --lost-found
//看到commitgit rebase 2e43cd56ee4fb08664cd843cd32836b54fbf594a
//恢复git merge 2e43cd56ee4fb08664cd843cd32836b54fbf594a
//也可以用这个恢复
新建仓库
init
git init
//初始化
status
git status
//获取状态
add
git add file
// .或者*代表全部添加git rm --cached <added_file_to_undo>
//在commit之前撤销git add 操作git reset HEAD
//好像比上面git rm --cached
更方便
* --soft – 缓存区和工作目录都不会被改变
* --mixed – 默认选项。缓存区和你指定的提交同步,但工作目录不受影响
* --hard – 缓存区和工作目录都同步到你指定的提交
commit
git commit -m "节点信息"
//此处注意乱码
remote
git remote add origin https://github.com/dfa0328/VueDemo.git
//添加源
添加3个远程地址
1 | git remote add origin https://github.com/dfa0328/Vue.git |
删除其中一个set-url地址
1 | git remote set-url --delete origin https://github.com/dfa0328/Vue.git |
push
git push -u origin master
//push 同时设置默认跟踪分支git push origin master
git push -f origin master
//强制推送
* 缩写 -f
* 全写 --force
* 注:强制推送文件没有了
pull
只能拉取 origin 里的一个url地址,这个fetch-url默认为你添加的到 origin 的第一个地址
git pull origin master
git pull --all
//获取远程所有内容包括 taggit pull origin next:master
//取回origin 主机的next 分支,与本地的master分支合并git pull origin next
//远程分支是与当前分支合并
上条命令等同于下面两条命令git fetch origin
git merge origin/next
如果远程主机删除了某个分支,默认情况下,git pull 不会再拉取远程分支的时候,删除对应的本地分支。这是为了防止,由于其他人操作了远程主机,导致 git pull 不知不觉删除了本地分支。
但是,你可以改变这个行为,加上参数 -p 就会在本地删除远程已经删除的 分支。
1 | $ git pull -p //等同于下面命令 |
更改pull
只需要更改config文件里,那三个url的顺序即可,fetch-url会直接对应排行第一的那个url连接
从现有的仓库克隆
1 | git clone https://github.com/dfa0328/Vue.git |
本地
add
1 | git add . //跟踪新文件 |
rm
1 | rm * 或 git rm * //移除文件 |
commit
1 | git commit //提交更新 |
reset
1 | git reset HEAD //取消已经暂存的文件 |
revert
1 | git revert HEAD //撤销前一次操作 |
checkout
1 | git checkout --file //取消对文件的修改(从暂存区一一覆盖worktree file) |
diff
1 | git diff file //查看指定文件的差异 |
stash
1 | git stash //将工作区现场(已跟踪文件)储藏起来,等以后恢复后继续工作 |
merge
git merge --squash test
//合并压缩,将test上的 commit 压缩为一条
cherry-pick
1 | git cherry-pick commit //拣选合并,将commit 合并到当前分支 |
rebase
1 | git rebase master //将master分支上超前的提交,变基到当前分支 |
分支branch
删除
1 | git push origin :branchName //删除远程分支 |
提交
git push -u origin branchName
//提交分支到远程origin主机中
拉取
git fetch -p
//拉取远程分支时,自动清理远程分支已删除,本地还存在对应的同名分支
分支合并
1 | git merge branchName //合并分支--将分支branchName和当前所在分支合并 |
重命名
git branch -m old new
//重命名分支
查看
1 | git branch //列出本地分支 |
新建
1 | git branch test //新建test分支 |
连接
1 | git branch --set-upstream dev origin/dev //将本地dev分支与远程分支之间建立连接 |
分支切换
1 | git checkout test //切换到test分支 |
远端
撤销远程记录
git reset --hard HEAD~1
//撤销一条记录git push -f origin HEAD:master
//同步到远程仓库
忽略文件
echo node_modules/ >> .gitignore
删除文件
git rm -rf node_modules/
标签tag
git tag
//列出现有的标签git tag v0gi.1
//新建标签git tag -a v0.1 -m '描述'
//新建带注释的标签git checkout tagname
//切换到标签git push origin v1.1
//推送分支到源上git push origin --tags
//一次性推送所有分支git tag -d v0.1
//删除标签git push origin :refs/tags/v1.1
//删除远程标签git pull --all
//获取远程所有内容包括tag
日志log
git log
//查看最近的提交日志git log --pretty=oneline
//单行显示提交日志git log --graph --pretty=oneline --abbrev-commit
git log -num
//显示第几条log (倒数)git relog
//查看所有分支的所有操作记录git log --since=1.day
//一天内的提交