美文网首页
Git学习整理

Git学习整理

作者: 倔强_2722 | 来源:发表于2020-05-19 23:36 被阅读0次

    Git 工作区、暂存区和版本库概念

    1.工作区:就是你在电脑里能看到的目录。
    2.暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
    3.版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

    image.png

    配置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邮箱"

    配置成功

    cat .ssh/id_rsa.pub
    复制该文件内的公钥,粘贴到github/setting/SSH and GPG keys

    image.png

    在.ssh目录下创建config文件,添加配置信息,可以添加多个,以方便公司gitlab,自己的github都能正常操作
    Host github.com
    HostName github.com
    User 注册的github的昵称
    IdentityFile .ssh的绝对路径/id_rsa

    配置多个sshkey

    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

    相关文章

      网友评论

          本文标题:Git学习整理

          本文链接:https://www.haomeiwen.com/subject/tdzbohtx.html