Ywc's blog

Git

Word count: 1.3k / Reading time: 4 min
2018/12/03 Share

前言

Git现在在各大公司的应用越来越多,学一波git是很有必要的..之前学过一波,好久没用忘了….现在记录下,以防忘记。

常用指令

git status 查看当前仓库中文件的状态
git status -s 文件状态的简写(M - 修改, A - 添加, D - 删除, R - 重命名,?? - 未追踪)
git add <文件名> 将后方紧跟的文件进行暂存,以便commit使用
git reset HEAD <文件名> 将已经暂存的文件进行撤销,回到未暂存的状态
git checkout -- <文件名> 撤销对尚未暂存文件的修改,该操作不可逆,慎用
git commit -a 对那些被修改的文件单尚未暂存和提交的文件进行暂存和提交。注意:对未暂存的新增文件无效
git commit -m"" 对暂存区的文件进行提交到本地仓库并进行简单说明
git push 将本地仓库已经提交的内容发布到远端
git pull 取回远程主机某个分支的更新,再与本地的指定分支合并
git stashgit存储,常用于合并冲突

常用的提交指令

当修改文件后

git add 或者 一个个地 git add + 文件名

git status 查看相关文件的状态

git commit -m 提交说明”` 将暂存区里的改动给提交到本地的版本库并简要说明这次提交的语句

git push 将修改内容推送到远程仓库

git pull 取回远程主机某个分支的更新,再与本地的指定分支合并

Git learn

版本回退

  • git log显示从最近到最远的提交日志
    • git log ----pretty=oneline 优化输出日志
  • git reset --hard HEAD^版本回退到上一个版本,
    • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令:
      • git reset --hard commit_id
  • git reflog查看命令历史,以便确定要回到哪个版本

廖雪峰:版本回退

撤销修改

  • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

    • git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”
  • 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作

  • 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库

廖雪峰:撤销修改

Git learn

删除文件

  • git commit用于删除一个文件

如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容

分支管理

创建与合并分支

  • 查看分支:git branch

  • 创建分支:git branch <name>

  • 切换分支:git checkout <name>或者git switch <name>

  • 创建+切换分支:git checkout -b <name>或者git switch -c <name>

  • 合并某分支到当前分支:git merge <name>

    • 例如:在master分支下,想合并dev分支到master,使用命令:git merge dev
      • 使用 --no-ff参数,表示禁用Fast forward模式(Git在合并分支时会使用Fast forward模式,这种模式下,删除分支后,会丢掉分支信息):
        • git merge --no-ff -m "merge with no-ff" dev(注:合并之后,还要重新push到远程分支才行)
  • 删除分支:git branch -d <name>

多人协作

  • git revert撤销某次操作

GitLab配置ssh key

1.打开本地git bash,使用如下命令生成ssh公钥和私钥对

  • ssh-keygen -t rsa -C ‘xxx@xxx.com’ 然后一路回车(-C 参数是你的邮箱地址)

2.然后打开/.ssh/id_rsa.pub文件(表示用户目录,比如我的windows就是C:\Users\Administrator),复制其中的内容

3.打开gitlab,找到Profile Settings–>SSH Keys—>Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框,在Title对应的文本框中给这个sshkey设置一个名字,点击Add key按钮

4.到此就完成了gitlab配置ssh key的所有步骤,我们就可以愉快的使用ssh协议进行代码的拉取以及提交等操作了

git clone ssh://git@xxxx.git

git clone xxxxxx.git

两种方式进行本地拉取远程服务器文件

如果要使用gitlab和github等还要配置多个ssh key

要在~/.ssh中新建一个config文件,我的为:

1
2
3
4
5
6
7
8
9
# gitlab
Host gitlab.com
HostName gitlab.com
IdentityFile ~/.ssh/id_rsa

# github
Host github.com
HostName github.com
IdentityFile ~/.ssh/id_rsa_github

Reference

廖雪峰的Git教程

GitHub 多人队伍合作详细教程

原文作者: Ywc

原文链接: https://yinwc.github.io/2018/12/03/Git-learn/

发表日期: December 3rd 2018, 4:42:31 pm

版权声明:

CATALOG
  1. 1. 前言
  2. 2. 常用指令
    1. 2.1. 常用的提交指令
    2. 2.2. 版本回退
    3. 2.3. 撤销修改
    4. 2.4. 删除文件
  3. 3. 分支管理
    1. 3.1. 创建与合并分支
    2. 3.2. 多人协作
  4. 4. GitLab配置ssh key
  5. 5. Reference