Git常用命令

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mkdir <filename>           //创建目录  
cd <filename> //进入指定文件夹
rm <filename> //工作区删除文件
rm -rf <foldername> //工作区删除文件夹
pwd //打印当前路径
cat <filename> //查看指定文件的内容
ls -a //查看隐藏的.git文件,.git文件是git版本库,里面的stage就是暂存区
git init //将命令运行的目录变成git可以管理的仓库
git add <filename> //将指定文件从工作区添加到暂存区
git commit -m "提交说明" //将暂存区的所有文件提交到版本库,-m后面添加说明
git status //查看当前版本库状态
git log //查看历史版本记录
git log --pretty=oneline //查看历史记录,只不过一行显示更加清晰
git reflog //查看你的历史命令,可以看到历史版本的版本号,利用历史版本的版本号可以实现代码版本的回退
git diff <filename> //查看该文件的具体修改内容
git diff HEAD <filename> //查看工作区与版本库里面的最新版本的区别
git reset --hard <版本号> //回退到指定版本号的版本
git reset --hard HEAD^ //回退到上一个版本

在git中,HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上一个版本,前100个版本可以表示为HEAD~100。

撤销修改

git restore <file>

git checkout --<file>

  1. 在未将修改内容git add到暂存区之前,可撤销工作区的修改

  2. 如果已经把修改后的内容git add到暂存区后,使用git reset HEAD <file> 可以撤销暂存区的修改,将其重新放回工作区,之后使用

    git restore<file> 撤销工作区的修改,回到最初的状态。

    git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

    git rm <filename> 从版本库删除文件

  3. 如果在工作区误删文件,使用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
2
3
4
5
git switch -c <branch name>          //创建一个新分支,并切换当新分支
git switch <branch name> //切换分支
git branch //查看当前分支,当前分支名字前面会显示*
git branch -d <branch name> //删除分支
git merge <branch name> //在当前分支合并指定的分支

在新分支修改后,必修add和commit才能上传至版本库,否则你只在工作区改动,无论是在原分支和新分支,cat 查看一个文件是一样的。

手动解决合并冲突

使用vi <filename> 查看并编辑文件内容,按下键盘上的Insert键进入编辑模式,完成后按下Esc键,之后

:q 不保存退出

:q! 不保存强制退出

:wq 保存退出

切记要打 : 符号

编辑完成后保存退出,再次git addgit commit,之后手动合并成功

git log --graph 查看分支合并图

git log --graph --pretty=oneline --abbrev-commit 查看合并图更加清楚

添加标签与管理标签

1
2
3
4
5
6
7
8
9
git tag <label name>                   //新建一个标签,指向当前HEAD版本
git tag <label name> commit-id //为commit-id的版本添加一个标签
git tag -a <label name> -m"说明备注" //指定标签信息
git show <label name> //查看某一标签详细信息
git tag //查看当前所有标签
git push origin <label name> //推送本地标签
git push origin --tags //推送全部未推送的本地标签
git tag -d <label name> //删除一个本地标签
git push origin :refs/tags/<label name> //删除一个远程标签

参与github开源

找到一个开源项目,点击右上角Fork即可将项目复制到自己的github

本地创建一个空文件夹,git init作为仓库

git clone [git@github.com](mailto:git@github.com):Fallenpetal/仓库名.git

如果文件过大,按Ctrl + c取消克隆

在本地修改,如果想参与官方的开源,pull request

忽略特殊文件

在工作区创建.gitignore文件

在里面加入想忽略的文件,这样每次改动git不会再提醒你untracked

加入格式为:

1
2
#java:
*.class

`#是注释,*.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 查看

Author: wnxy
Link: https://wnxy.xyz/2021/10/27/Git_common_commands/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.