一、GIT常用操作

Git常用口令

命令提示键:Tab
1.设置用户名、邮箱(每次向仓库提交时使用):
git config –global –add user.name **
git config –global –add user.email **
2.删除用户名、邮箱
git config –global –unset user.name **
git config –global –unset user.email **
3.查询当前的用户名、邮箱:
git config –get user.name
3.查看所有的用户名、邮箱:
git config –list –global
一、 git基本的工作流程
(一) 创建仓库(带工作区)
1. git init 将在指定目录创建一个“.git”文件夹
2. cd .git/:进入该文件夹
3. ls:可以查看该文件夹下有什么
4. cd ../..:退出到根目录
(二) 创建仓库(不带工作区)
1. git init –bare git_bare_repo:没有“.git”文件夹
2. cd git_bare_repo/
3. ls:只有git工作所需要的一些文件
(三) 将一个已有的工作环境纳入git中进行管理
1. 创建一个文件夹:mkdir git_init_repo
2. 进入文件夹:cd git_init_repo/
3. 创建仓库:git init
4. 退出当前文件夹:cd ..
5. 将已有的仓库复制进来:git clone git_bare_repo/ git_clone_repo
备注: git_bare_repo/ 是已存在仓库的位置 git_clone_repo:复制过来仓库的别名
6.
(四) Git仓库简介
1. working directory:工作区,编辑代码的地方,维护一个树形结构
2. staging area:暂存区,代表你需要提交的一个状态,维护一个虚拟的树形结构
3. history repository:历史仓库,commit指向的一个树形结构

问题1:往暂存区中添加文件
命令:git add
问题2:将暂存区中的文件提交到本地仓库中
命令:git commit
问题3:怎么查看工作区和暂存区中间的区别,来确保提交的是我们需要的?
命令:git status
问题4:怎么从暂存区删除我们不需要的?
命令:git rm
问题5:在工作区中重命名或移动文件,然后再把它们添加到暂存区中?
命令:git mv
问题6:如何确保工作区中的一些文件不被添加到暂存区和历史仓库中
命令:gitignore
案例演示上述命令:
1.创建一个git仓库:git init GIT
2.进入该文件夹:cd GIT/
3.创建2个文件:touch a
4.将2个文件添加到暂存区:git add a b
5.查看暂存区的文件:git status
6、向历史仓库中提交:git commit -m “Initial commit”
备注:-m “Initial commit” 本次提交的相关信息
7. 修改文件a:vim a
8. 添加到暂存区:git add a
9. 提交到历史仓库:git commit –m ”modify a”
10. 删除a:git rm a (会同时把工作区中的a和暂存区中的a引用给删除掉)
11. 还原a: (1) git reset HEAD a (2) git checkout a
12. 只删除暂存区里的文件,而不删除工作区中的文件:git rm –cached a
13. 再把a添加回暂存区:git add a
备注:每次操作之后,我们都可以用“git status”跟踪暂存区的状态;使用命令“ls”查看当前目录所有文件
14. 有时候文件需要被重命名或移动一下路径,使用命令“git mv”
(1) 把文件a重命名为c(工作区与暂存区都改变):git mv a c
(2) 把文件a重命名为c(工作区改变,暂存区a被删除,也没有c): mv a c
15. 将整个工作区添加到暂存区:git add –A
16.
(五) 确保工作区中的一些文件不被添加到暂存区和历史仓库中:编写.gitignore文件,在里面设置哪些不需要添加到仓库中
二、 Git本地分支与合并
创建一个本地仓库:git init git_checkout_merge
(一) 在主支(master)上提交文件
1. git add . 添加当前目录所有的文件到暂存区
2. git commit –m “**” 提交到历史仓库
(二) 在分支上提交文件(主要适用场景:增加一些新的特性,或者做问题的修改和测试等)
1. 创建一个新的分支:git branch test(分支名叫test)
2. 切换到新创建的分支:git checkout test
3. 修改原有文件(master.txt),创建新文件(test.txt)
4. 添加当前目录所有的文件到暂存区:git add .
5. 提交到历史仓库:git commit –m “**
6. 切换到主支(master)上工作:git checkout master
7. 查看当前工作目录所有文件:ls
备注:发现刚刚在test上修改的master.txt文件内容并没有改变,而且test.txt文件也不存在(这说明当我们切换分支的时候,会使用我们分支上最新的一个提交来还原我们的暂存区和工作区,这样可以让我们在不同的分支之间独立地做我们想要做的工作,并且可以无缝的来回切换)
(三) 查看所有的提交记录
1. git log –oneline –decorate –graph –-all
2. 对主支(master)上的第一次提交做一个轻量级的tag:git tag “vo” 5183bdf
备注:“vo”是别名 “5183bdf”是第一次提交所指向的索引值(通过“1”中代码查询到)
3. 对主支(master)上的第一次提交做一个轻量级的tag (注解方式):git tag -a “INITIAL_COMMIT” 5183bdf
会进入vim编辑器,编辑完毕之后,首先Esc退出输入状态,然后Shift+,输入:wq即可退出vim编辑器
4. 查看当前有哪些tag:git tag
5. 再次查看所有的历史提交:git log –oneline –decorate –graph –-all
可以给“log –oneline –decorate –graph –-all”起个别名:
git config –global alias.lol “log –oneline –decorate –graph –all”
有了这个别名以后,可以使用命令“git lol”来查看所有的历史提交
6. 查看tag的内容:git show vo
7. 回到tag标记的地方:git checkout vo
8. 切换到一个新的分支(该分支仍然指向我们刚刚的tag):git checkout -b fix_vo
(四) 合并分支
1. 切换为主支:git checkout master
2. 创建分支,并切换到该分支:git checkout -b test_merge
3. 在分支“test_merge”上修改文件:vim master.txt
4. 添加到暂存区:git add .
5. 添加到历史仓库:git commit –m “commit on branche test_merge”
6. 切换为主支:git checkout master
7. 将分支” test_merge”上的操作合并到主支上:git merge test_merge
8. 将test分支合并到主支上(test并不衍生自master,会有冲突):git merge test
若非要合并,则首先需要编辑冲突的文件:vim master.txt,将HEAD—test之间的内容全部删除(为test分支上的操作),保留主支上的内容即可
9. 放弃本次合并:git merge –abort
三、 查看与对比历史记录
常用命令:git show git log git diff
1. 查看当前分支最新提交:
(1) 首先查看所有的状态:git log –oneline –decorate –graph –all
(2) 查看当前分支最新提交:
a、 git show bfd6cce (bfd6cce 是分支对应的码)
b、 git show master
c、 git show HEAD
以上都是等价的
(3) 输出工作区与暂存区的差异:git diff
(4) 暂存区与历史提交的差异:git diff –cached
四、 撤销修改
常用命令:git checkout git reset git clean git revert
git ** 分支 –文件名
1. 创建、切换分支和还原工作区(实质上是用暂存区的文件来恢复工作区的文件):git checkout HEAD – 文件名
2. 还原暂存区:git reset 文件名
3. 清除还没有添加进暂存区的文件:git clean
(1) 查看哪些文件可以被清除:git clean –n
(2) 清除可以被清除的文件:git clean –f
4. 产生一个新的提交来覆盖之前的提交所产生的修改:git revert
五、 重写历史记录
1. git commit –amend:产生一个新的提交用来替换掉当前所指向的提交
2. git rebase:维护一个线性的历史
3. git reset:撤销
4. git reflog:维护HEAD所引用的信息,通常配合git reset来使用
六、 重写历史记录
指向远程库:
git remote add origin https://github.com/yourName/yourRepo.git
(备注:这里,idea自动帮我们做好了)
本地分支推送到远程分支:
“git push <远程主机名> <本地分支名>:<远程分支名>”
例如:
git push origin panchang_dev:publish
把本地的“panchang_dev”分支,推送到远程的“publish”分支

将远程分支拉到本地
“git pull <远程主机名> <远程分支名>:<本地分支名>”

恢复到某个commit
git reset –-hard commit编号
恢复到当前上一个版本:
git reset –hard HEAD~1

猜你喜欢

转载自blog.csdn.net/panchang199266/article/details/80301610
今日推荐