git
git
初始化:
git init
克隆:
git clone url
查看文件状态:
git status [filename]
查看文件更改的地方:
git diff filename
添加所有文件到暂存区
git add .
提交到本地仓库
git commit -m "message"
, m参数表示附带提交信息主目录下的
.gitignore
文件有如下规则:- 1.忽略文件中的空行或以井号(#)开始的行将会被忽略。
- 2.可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围大括号([string1,string2,..))代表可选的字符串等。
- 3.如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
- 4.如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
- 5.如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)
一个流程
- 初始化一个目录
- 修改目录中的文件
- 此时
git status
可以看到哪个文件做了修改 git add .
添加到暂存区git status
可以看到修改的文件待提交- 提交后就会记录
-
需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改
回退
HEAD指针指向当前版本
HEAD^指向上一版本, HEAD^^上上版本, HEAD~100上100个版本
git reflog
可以看到每个版本的commit id回退上一版本:
git reset --hard HEAD^
回退指定版本:
git reset --hard "commit id"
撤销修改
未添加到暂存区
git checkout -- readme.txt
用版本库里的版本替换工作区的版本已添加到暂存区但未提交
git reset HEAD readme.txt
回退到当前版本库的最新版本git checkout -- readme.txt
push远程仓库
git remote add origin https://gitee.com/zaqai/learn.git
将远程仓库和本地关联, origin可以理解为远程仓库的别名?
git push -u origin master
将本地上传到远程
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
git remote rm origin
删除远程库
分支管理
- 创建名为dev的分支
git branch dev
- 切换到dev
git switch dev
git switch -c dev
创建并切换git branch
命令会列出所有分支git merge dev
合并分支(在master中)git branch -d dev
删除分支
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.