廖雪峰Git教程命令简要记录
1.创建版本库
序号 | 命令 | 作用 | 重要性*** |
---|---|---|---|
1 | makdir xxx | 新建xxx目录 | |
2 | cd xxx | 进入xxx目录 | |
3 | pwd | 显示当前目录路径 | |
4 | ls -ah | 显示当前目录的文件 | |
5 | vi xxx.txt | 打开文件xxx.txt进行编辑 | * |
6 | cat XXX.txt | 查看文件xxx.txt | ** |
7 | git init | 将当前目录设置为git管理目录 | * |
8 | git add xxx.txt | 将文件xxx.txt加入到暂存库 | *** |
9 | git commit -m “文件描述” | 将添加到暂存库的文件提交到版本库,并记录文件描述 | *** |
10 | git status | 查看当前仓库状态 | *** |
2. 时光机穿梭
序号 | 命令 | 作用 | 重要性*** |
---|---|---|---|
1 | git diff xxx.txt | 查看xxx.txt文件当前所做的修改 | *** |
2 | git log | 显示从最近到最远的版本日志 | *** |
3 | git log --pretty=oneline | 按行显示从最近到最远的版本日志 | ** |
4 | git reflog | 显示所有版本提交或跳转(commit, reset)的命令 | *** |
5 | git reset --hard HEAD^ | 返回到上一版本 | *** |
6 | git reset --hard 版本号 | 返回“版本号”对应的版本 | *** |
7 | git checkout – xxx.txt | 返回文件xxx.txt最后add或commit的版本 | ** |
8 | git reset HEAD xxx.txt | 把xxx.txt暂存区的修改撤销掉(unstage),重新放回工作区 | |
9 | rm xxx.txt | Linux命令,删除文件xxx.txt | |
10 | git rm xxx.txt | 删除版本库中的xxx.txt文件 |
注意7、8两个命令的使用场景:
场景1):当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
场景2):当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file_name>,就回到了场景1,第二步按场景1操作。
3. 远程仓库
为了更加安全的管理文件,建立远程仓库进行管理。由于github远程库网络连接困难,使用国内的gitee进行远程仓库管理。
1.与远程库进行连接,首先在文件夹"…\用户名\.ssh"文件夹下生成文件id_rsa、id_rsa.pub,其中id_rsa.pub为SSH公钥。输入命令:
ssh-keygen -t rsa -C "<邮箱xxx@xxx.com>"
注意如果之前已经生成过SSH文件,会询问是否覆盖以前的文件。输入y并回车后会要求输入密码(不输入密码将不设置密码),直接输入两次回车即可。
2.打开id_rsa.pub文件,将其中内容复制到“gitee个人主页->个人设置->安全设置->SSH公钥”公钥框中,在标题栏为该公钥输入名称,然后点击确认即可。
3.然后在gitee新建仓库,仓库名称最好与本地文件夹名称一致。
4.关联本地库与gitee远程库。输入命令:
git remote add origin git@gitee.com:liaoxuefeng/learngit.git
注意“liaoxuefeng/learngit"更改为自己的gitee ID和仓库名称。
5.本地文件commit后,推送至gitee远程库输入命令:
git push -u origin master
6.查看远程库,输入命令:
git remote -v
远程仓库命令总结
序号 | 命令 | 作用 | 重要性*** |
---|---|---|---|
1 | ssh-keygen -t rsa -C "<邮箱xxx@xxx.com> | 生成SSH公钥,只需操作一次 | * |
2 | git remote add origin git@gitee.com:liaoxuefeng/learngit.git | 关联本地库与gitee远程库,本地库与gitee远程库新建后只需操作一次 | * |
3 | git push -u origin master | 将本地master分支推送到远程库,首次推送用此命令 | *** |
git push gitee master | 将本地master分支推送到远程库,非首次推送可用此命令 | ||
4 | git remote -v | 查看远程库 | *** |
3.分支管理
序号 | 命令 | 作用 | 重要性*** |
---|---|---|---|
1 | git checkout -b <name> | 创建并切换至新建分支 | *** |
git switch -c <name> | 创建并切换至新建分支,仅新版本git支持 | *** | |
2 | git branch <name> | 创建分支 | *** |
3 | git branch | 查看当前分支 | *** |
4 | git checkout master | 切换至分支master | *** |
git switch master | 切换至分支master,仅新版本git支持 | *** | |
5 | git merge <name> | 把分支合并到当前分支 | *** |
6 | git branch -d <brc_name> | 删除分支,删除前分支需要合并 | *** |
git branch -D <brc_name> | 强行删除未合并的分支 | ||
7 | git log --graph | 查看各版本分支合并图 | ** |
git log --graph --pretty=oneline | 单行显示各版本分支合并图 | *** | |
git log --graph --pretty=oneling --abbrev-commit | 单行缩减显示各版本分支合并图 | ** | |
8 | git merge --no-ff -m “<comment>” <branch_name> | 以非fast forward模式合并分支 | *** |
9 | git stash | 隐藏工作现场 | *** |
10 | git stash list | 显示隐藏现场列表 | *** |
11 | git stash apply | 恢复隐藏现场,但隐藏内容不删除 | *** |
12 | git stash drop | 删除隐藏内容 | *** |
13 | git stash pop | 恢复隐藏现场,并删除隐藏内容 | *** |
14 | git cherry-pick <commit> | 把<commit>提交的修改“复制”到当前分支 | ** |
注意:
- 命令5、8的合并分支时可能会遇到冲突(同一文件在两个待合并分支的内容有所不同),解决办法是手动编辑冲突文件再提交。
-
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
-
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。