git 作为最好用的版本管理工具,学习一下还是很有必要的,记录一下学习笔记
Learn Git Note
This file is my note for git learning.
Basic Usage
-
git init
-
git add <file>
-
git commit -m <message>
1 2
git add readme.md git commit -m "new readme.md files"
- 查看状态
git status
- 查看不同
git diff
- 查看日志
git log
orgit 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 2
git 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,复制仓库地址,同步本地仓库到远程仓库
|
|