常用命令
1 | mkdir <filename> //创建目录 |
在git中,HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上一个版本,前100个版本可以表示为HEAD~100。
撤销修改
git restore <file>
git checkout --<file>
在未将修改内容
git add
到暂存区之前,可撤销工作区的修改如果已经把修改后的内容
git add
到暂存区后,使用git reset HEAD <file>
可以撤销暂存区的修改,将其重新放回工作区,之后使用git restore<file>
撤销工作区的修改,回到最初的状态。git reset
命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD
时,表示最新的版本。git rm <filename>
从版本库删除文件如果在工作区误删文件,使用
git checkout --<filename>
可以将版本库的版本替换到工作区从来没有被添加到版本库就被删除的文件,是无法恢复的!
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
;
关联一个远程库时必须给远程库指定一个名字,origin
是默认习惯命名;
git remote -v
查看远程库信息,包括名字和地址
git push origin <分支名>
推送分支到远程库,origin
是我的仓库名
关联后,使用命令git push -u origin master
第一次推送master
分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;
创建新分支
1 | git switch -c <branch name> //创建一个新分支,并切换当新分支 |
在新分支修改后,必修add和commit才能上传至版本库,否则你只在工作区改动,无论是在原分支和新分支,cat 查看一个文件是一样的。
手动解决合并冲突
使用vi <filename>
查看并编辑文件内容,按下键盘上的Insert
键进入编辑模式,完成后按下Esc
键,之后
:q
不保存退出
:q!
不保存强制退出
:wq
保存退出
切记要打 :
符号
编辑完成后保存退出,再次git add
,git commit
,之后手动合并成功
git log --graph
查看分支合并图
git log --graph --pretty=oneline --abbrev-commit
查看合并图更加清楚
添加标签与管理标签
1 | git tag <label name> //新建一个标签,指向当前HEAD版本 |
参与github开源
找到一个开源项目,点击右上角Fork
即可将项目复制到自己的github
本地创建一个空文件夹,git init
作为仓库
git clone [git@github.com](mailto:git@github.com):Fallenpetal/仓库名.git
如果文件过大,按Ctrl + c
取消克隆
在本地修改,如果想参与官方的开源,pull request
忽略特殊文件
在工作区创建.gitignore
文件
在里面加入想忽略的文件,这样每次改动git
不会再提醒你untracked
加入格式为:
1 | #java: |
`#是注释,
*.class表示会忽视所有后缀为
.class`的文件
被ignore
的文件,如果想强制添加,git add -f app.class
使用git check-ignore -v app.class
查看app.class
被忽略的准则,精确到第几行
把指定文件排除在.gitignore
规则外的写法就是!+文件名
,例如!app.class
配置别名
命令格式:git config --global alias.别名 原命令名
比如 git config --gloab [alias.st](http://alias.st/) status
,这样做,我们输入git st
就表示git status
--global
参数是全局参数,也就是这些命令在这台电脑的所有Git
仓库下都有用。配置Git
的时候,加上--global
是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。
每个仓库的Git
配置文件都放在.git/config
文件中:$ cat .git/config
查看
当前用户的Git
配置文件放在用户主目录下的一个隐藏文件.gitconfig
中:$ cat .gitconfig
查看