一.git工作原理/流程:
workspace: (除去.git)看见的目录。
版本库(Repository):工作区有一个隐藏目录.git就叫版本库。其中版本库里面存了很多东西,最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。
1.使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。
2.使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。
二.一些操作命令
1.git init
把目录变成git可以管理的仓库
2.git add
vim read.txt
git add 提交到暂存区
3.git commit
git commit把文件提交到仓库
git commit后,如何撤销commit_c46550的博客-CSDN博客_gitcommit后怎么撤销
4.git log --pretty=oneline
git log查看日志
其中上图黄色那一段就是版本号
5.git diff
git diff查看read.txt修改内容
继续添加内容
可以添加了内容22222,这下就可以放心
git add read.txt
git commit -m "read.txt添加22222"
git log --pretty=oneline 查看日志
6.git reset --hard HEAD^
git reset --hard HEAD^ 回退到上一版本
read.txt 变为原先的。
其中要注意的是 git reset --hard 版本号 。就可以回退到指定的版本。
7.git checkout (撤销修改)
比如添加55555发现添加错了,有三种解决办法。
(1)知道修改什么内容,修改回去,在add,commit。
(2)git reset --hard HEAD^ 恢复到上一版本。
(3)git checkout -- read.txt 可以丢弃工作区的修改。
发现read.txt恢复了。
8.删除版本库中文件
本地删除以后在commit就可以删除版本库中文件
git checkout 恢复删除的b.txt
9-1 首次push
需要先连接远程仓库
git remote add origin https:xxx
在push
git push -u origin master
9-2.再次push git push
将本地库内容推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
查看github仓库。
从现在起,只要本地作了提交,就可以通过如下命令注意没有-u拉:
git push origin master
比如vim c.txt
git add c.txt
git commit -m "添加c.txt"
git push origin master
10.git branch
查看分支
其中带*代表当前的分支.
git branch -l :查看本地分支
git branch -r :查看远程分支
git branch -a :查看全部分支(远程的和本地的
11.git checkout -b dev
相当于创建dev分支,然后切换到dev分支上.
master代表稳定分支,一般新建dev分支干活,dev分支稳定以后在发布上去与master分支合并。
和如下两个命令一致:
git branch dev
git checkout dev
12.git merge
在dev分支下
vim read.txt增加内容
git checkout master 切换到master分支
在合并分支
git add read.txt
git commit -m "修改test.txt"
git push origin master (推送到master分支)
即可将新的分支内容合并上master。
13.git branch -d 分支名
删除本地分支
删除远程仓库分支
git push origin --delete skeleton
14.查看远程库信息
git remote
查看远程库详细信息
15.删除git上面内容
(1).对需要删除的文件、文件夹进行如下操作:
git rm test.txt (删除文件)
git rm -r test (删除文件夹)
(2).提交修改
git commit -m "Delete some files."
(3).将修改提交到远程仓库的xxx分支:
git push origin xxx
16.将其他分支内容拷贝到本分支
git checkout other_branch -- ./mdet/models/neck
17.更新子项目
git submodule update --init --recursive
18.合并多个commit
Git rebase合并多条commit记录_书忆江南的IT博客-CSDN博客_git rebase合并commit1
19.删除commit的大文件
git filter-branch -f --index-filter "git rm -rf --cached --ignore-unmatch FOLDERNAME" -- --all
文件或者文件夹位置替换掉那个FOLDERNAME就可以
移除错误缓存
首先应该移除所有错误的 cache,对于文件:
git rm --cached path_of_a_giant_file
对于文件夹:
git rm --cached -r path_of_a_giant_dir
21.新建本地分支与远程分支同步
Git 修改本地分支和远程分支名称_快乐征途的博客-CSDN博客_本地分支改名
git checkout -b fzh/skeleton origin/fzh/skeleton
22.将新建的本地分支关联到远程分支(push 即可,push之后才可以pull)
git push origin branch_dev_local:branch_dev_remote
直接使用git push origin branch_dev 则默认和远程分支同名
23.主线一直更新(同步自己分支)解决方案
git rebase -i origin/dev 出现冲突 我修复冲突以后 在git rebase --continue
参考这篇文章
一个不错的教程