Git 工作区、暂存区和版本库概念
image.png1.工作区:就是你在电脑里能看到的目录。
2.暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
3.版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
配置SSHkey
配置成功在终端输入cd ~/.ssh
若提示cd: no such file or directory: ~/.ssh就说明是没有配置过,继续进行配置
git config --global user.name "你的账号名"
git config --global user.email "你的gitlab邮箱"
ssh-keygen -t rsa -C "你的gitlab邮箱"
image.pngcat .ssh/id_rsa.pub
复制该文件内的公钥,粘贴到github/setting/SSH and GPG keys
配置多个sshkey在.ssh目录下创建config文件,添加配置信息,可以添加多个,以方便公司gitlab,自己的github都能正常操作
Host github.com
HostName github.com
User 注册的github的昵称
IdentityFile .ssh的绝对路径/id_rsa
git初始化/查看状态/提交/推送
git init
git status
git add
git commit -m "可以添加备注"
git push
git删除
rm命令
rm test.txt 只删除工作区的文件
并没有删除版本库,若需要删除版本库的需要再次执行git add,git commit
git rm命令
git rm test.txt 删除工作区文件,并且将这次删除放入暂存区。
想要删除版本库文件还要执行git add 和commit 操作,删除工作区和版本库的文件。也可以根据提示通过版本库重置该文件
删除过程
git rm -f 命令
git rm -f test.txt 删除工作区和暂存区文件,并且将这次删除放入暂存区。
注意: 要删除的文件已经修改过,就是说和当前版本库文件的内容不同。
image.png
git rm --cached命令
git rm --cached test.txt 删除暂存区文件,但保留工作区的文件,并且将这次删除放入暂存区。
image.png
git分支管理-查看/创建
git branch 查看本地分支
git branch -a 查看远端分支
git checkout -b branch1 创建本地分支
git push --set-upstream origin branch1 首次提交远端分支
git分支管理-删除
不能直接删除当前分支,需要切换到其他分支后,再删除当前分支
删除本地分支:
git checkout master
git branch -d branch1 删除本地分支
git branch -D branch1 强制删除
删除远端的分支:
git branch -r -d origin/branch1删除
git push origin :branch1提交
注意:origin :branch1这里origin后面有个空格
远端分支删除操作
git分支管理-合并
git merge branch1 把branch1分支的代码合并到当前分支
解决冲突:当出现冲突时,git会提示冲突文件信息,做处理
git版本操作-版本回退
1)工作区、暂存区、版本库都回退
git reset --hard HEAD^
git reset --hard HEAD~100 回到100个版本前
git reflog 查看所有版本
git reset --hard 21f7342 回到指定版本
2)只保留工作区,暂存区、版本库回退
git reset --mixed HEAD^
3)保留工作区、暂存区,只有版本库回退
git reset --soft HEAD^
image.png
git修改提交的版本备注信息
1.修改最新一次提交,用amend
git commit --amend,然后在弹出的编辑区修改备注保存提交
2.修改之前的任意次提交,用rebase
git rebase -i HEAD~3
表示要修改当前版本的倒数第三次状态。
这个命令出来之后,会出来三行东东:
pick:*******
pick:*******
pick:*******
如果你要修改哪个,就把那行的pick改成edit,然后保存退出。
这时通过git log你可以发现,git的最后一次提交已经变成你选的那个了,这时再使用:
git commit --amend
来对commit进行修改。
提交完成后使用git rebase --continue搞定
git存在修改记录时,不能再次rebase,需要执行完上一次的操作才行。可以继续,终止,跳过
git rebase (--continue | --abort | --skip)
git修改push的注释
刚刚push到远端还没有人其他人下载或改动的:
git commit --amend
进入修改页面修改注释信息,修改后:wq保存退出。
再使用git push --force-with-lease origin master
远端文档被人改动后:
本地先修改对应的文件提交信息,然后拉取远端代码合并后,再push上去,这样修改注释的风险是本地在暂存区的新文件会被提交。最好不要这样操作,风险比较大。
git rebase -i HEAD~2
git commit --amend
git rebase --continue
git pull origin master
git push -u origin master
网友评论