设定用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
创建本地仓库
git init
查看一下当前的状态
git status
将新建的文件添加到暂存区,那么它会自动变为被追踪状态
git add hello.txt #也可以 add . 一次性添加目录下所有的
将暂存区的文件提交到本地仓库
git commit -m 'Hello World'
查看提交记录
git log
git log --graph
git log --oneline --all
查看最近一次变更的详细内容
git show [也可以加上commit ID查看指定的提交记录]
可以创建一个.gitignore
文件来确定一个文件忽略列表,如果忽略列表中的文件存在且不是被追踪状态,那么git不会对其进行任何检查
# 这样就会匹配所有以txt结尾的文件
*.txt
# 虽然上面排除了所有txt结尾的文件,但是这个不排除
!666.txt
# 也可以直接指定一个文件夹,文件夹下的所有文件将全部忽略
test/
# 目录中所有以txt结尾的文件,但不包括子目录
xxx/*.txt
# 目录中所有以txt结尾的文件,包括子目录
xxx/**/*.txt
回滚
执行回滚操作可以将工作空间的内容恢复到指定提交的状态
git reset --hard commitID
又想回去就可以通过查看所有分支的所有操作记录,这样就能找到之前的commitID,再次重置即可。
git reflog
查看当前仓库中存在的分支
git branch
创建一个新的分支和删除一个分支
git branch test
# 对应的删除分支是
git branch -d test
将分支切换到另一个分支,可以看出在不同分支下我们的文件内容是相互隔离的
git checkout test
可以将两个分支更新的内容最终合并到同一个分支上
git merge test
查看哪里发生了冲突
git diff
变基分支
跟合并不同,合并是分支回到主干的过程,而变基是直接修改分支开始的位置
git rebase master
优选
可以选择其将他分支上的提交作用于当前分支上,这种操作称为cherrypick
git cherry-pick
:单独合并一个提交
创建仓库后,可以通过推送来将本地仓库中的内容推送到远程仓库
git remote add 名称 远程仓库地址
git push 远程仓库名称 本地分支名称[:远端分支名称]
使用SSH来实现一次性校验,可以在本地生成一个rsa公钥
ssh-keygen -t rsa
cat ~/.ssh/github.pub
克隆项目
git clone 远程仓库地址
抓取、拉取和冲突解决
获取远程仓库中最新的提交
git fetch 远程仓库 #抓取:只获取但不合并远端分支,后面需要我们手动合并才能提交
git pull 远程仓库 #拉取:获取+合并
如果远程仓库中的提交和本地仓库中的提交没有去编写同一个文件,那么就可以直接拉取
git pull 远程仓库
拉取后会自动进行合并,合并完成之后再提交即可
上一篇:牛客小白月赛61-E