git 作为最好用的版本管理工具,学习一下还是很有必要的,记录一下学习笔记
Learn Git Note
This file is my note for git learning.
Basic Usage
- 
git init - 
git add <file> - 
git commit -m <message>1 2git add readme.md git commit -m "new readme.md files" 
- 查看状态 
git status - 查看不同 
git diff - 查看日志 
git logorgit log --pretty=oneline - 查看历史 
git reflog查看命令历史,以便确定要回到未来的哪个版本 - 版本回退 
git reset -hard HEAD^orgit reset -hard <commit id>- 参数: 
HEAD^HEAD^^HEAD~100 
 - 参数: 
 git checkout -- file丢弃工作区的修改git reset HEAD <file>撤销暂存区的修改,重新放回工作区- 删除文件 
git rm <files> 
Remote Repository
- 创建SSH Key 
ssh-keygen -t rsa -C "[email protected]" - 注册 GitHub,添加 SSH Pub Key
 - GitHub 新建 Repository learngit
 - 关联远程Repository 
git remote add origin [email protected]:username/learngit.git - 推送 
git push -u origin master git clone
Branch
New Branch and Merge
- 
创建
dev分支并切换到dev分支:git checkout -b dev - 
等价于
1 2git branch dev git checkout dev - 
git checkout master - 
git merge dev - 
删除dev分支:
git branch -d dev - 
查看分支
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 merge --no-ff -m "merge with no-ff" dev - 
git stash“储藏”当前工作现场,git stash list查看 - 
git stash apply恢复,但stash内容并不删除,需要用git stash drop来删除 - 
或者用
git stash pop,恢复的同时把stash内容也删除了 - 
cherry-pick复制一个特定的提交到当前分支 - 
通过
git branch -D <name>强行删除没有被合并过的分支 - 
查看远程库信息
git remote -v - 
本地推送分支,使用
git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交 - 
在本地创建和远程分支对应的分支,使用
git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致 - 
建立本地分支和远程分支的关联,使用
git branch --set-upstream branch-name origin/branch-name - 
从远程抓取分支,使用
git pull,如果有冲突,要先处理冲突 - 
git rebase提交记录变成一条直线 
Tag
git tag <name>就可以打一个新标签git tag查看所有标签- 为历史提交 commit 打标签,找到 commit id 
git tag <name> ommit_id git show <tagname>查看标签信息git tag -a <tagname> -m "blablabla..."指定标签信息- 删除标签 
git tag -d <tagname> - 标签都只存储在本地,不会自动推送到远程。如果要推送某个标签到远程,使用命令 
git push origin <tagname> - 一次性推送全部尚未推送到远程的本地标签 
git push origin --tags git tag -d <tagname>删除一个本地标签git push origin :refs/tags/<tagname>删除一个远程标签
Others
- 忽略文件或文件夹,新建 
.gitignore文件,将不需要追踪的文件和文件夹写入 
应用
将本地项目同步到Github
准备工作
本地git获得github的提交权限
 | 
 | 
指令执行后会让你确定密钥保存地址和设置密码,默认回车就好,完成后添加生成的id_rsa.pub文件中的公钥到 Github 的 setting / SSH AND GPG KEY / SSH keys
提交
cd到项目本地目录
git init# 初始化git仓库git add .# 把所有项目文件添加到提交暂存区git commit -m '提交说明'# 把暂存区中的内容提交到仓库
创建远程仓库,在github中新建一个repository,复制仓库地址,同步本地仓库到远程仓库
 | 
 |