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,复制仓库地址,同步本地仓库到远程仓库
|
|