初始配置
配置用户名密码,告诉Git你是谁
git config --global user.name "xxx"
git config --global user.email "xxx@gmail.com"
创建代码库
git init
文件管理
把文件放入暂存区:git add <name>
把文件从暂存区移除:git rm --cached -r <file>
删除文件:git rm <name>
移动/改名:git mv <file> <newfile>
版本管理
提交:git commit -m "注释"
撤销工作区的修改,恢复成暂存区的内容:git checkout -- <file>
放弃暂存区的内容:git reset HEAD <file>
git log
可以看到由近到远的提交历史,可看3次
如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline
参数
git reflog
查看命令历史
版本回退:
HEAD
表示当前版本,HEAD^
表示上一版本,HEAD^^
表示前两个版本,HEAD~100
表示前100个版本…
git reset --hard HEAD^
也可以直接用commit id回退,commit id可以只写前几位
git reset --hard 3628164
分支
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建并切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
标签
查看所有标签:git tag
新标签:git tag <name> [commit_id]
name是要打的标签的名字,默认打在最新的commit上,也可以指定commit_id打标签
还可以打带说明的标签,-a
指定标签,-m
指定说明:
git tag -a "v1.0" -m "1.0 released" [commit_id]
远程仓库
查看远程仓库:git remote
查看仓库地址:git remote -v
添加远程仓库:git remote add <别名> <地址>
删除远程仓库:git remote remove <name>
提交代码到Github
http提交
没有配置远程仓库别名
git push https://xxx master
配置了远程仓库别名
git push origin master
ssh提交
配置ssh协议的远程仓库
git remote add origin git@xxx.xxx:xxx/xxx.git
生成ssh公钥
ssh-keygen -t rsa -C "email@xxx.com"
配置公钥到远程服务器
生成的公钥文件在用户文件夹下.ssh
文件夹中
打开id_rsa.pub
,复制其中的内容配置到远程服务器(Github)
之后再push本地仓库到远程就不用密码了