git常用命令

git常用命令

git本地仓库

初始化文件目录,在当前文件路径中添加.git文件

1
git init

声明哪些变动需要commit (the modification to be committed)

1
git add

.gitignore文件 文件内容表明哪些变动不需要commit (the modification not to be committed)

示例

1
2
/.cache/
/node_modules/

将文件变动提交到本地仓库

将add后的变动提交到本地仓库(不常用),将目前代码复制一份到.git目录

1
git commit -m	"[版本描述]"

先打开代码,然后手动添加变动情况描述,最后将add后的代码提交到本地仓库——.git目录(常用)

1
git commit -v

查看提交的所有分支的历史版本

1
git log

查看所有分支的所有操作,包括所有commit和reset

1
git reflog

回滚版本

1
git reset --hard [版本号]	切换代码版本

一定要确保已经把所有add过的代码都commit了。因为这个操作会使所有add过而没有commit的文件消失。

版本号只要保证具有唯一性即可,对版本号的长度没有要求。

分支操作

创建分支x(新的时间线)

1
git branch x	

基于本地仓库里最新一次 commit(提交),创建一个新的分支 x

将当前分支切换到分支x

1
git checkout x

切换分支的前提是,当前分支没有未commit的文件。

会让当前目录的内容变成本地仓库里 x 分支的最新内容(可能会删除当前目录里的一些文件)

查看当前分支情况,前面带*号的为当前所在分支

1
git branch

分支合并

将x分支合并到当前分支

1
git merge x

解决冲突

  • 出现CONFLICT时,需要手动解决代码冲突,然后再add+commit

    1. 使用git status -sb命令查看哪些文件出现冲突

    2. 次打开每个冲突文件

    3. 搜索出现====的部分

    4. 在上下个代码中手动调整需要修改的部分

    5. 删除不用的代码、>>>>、<<<<及====

    6. git add冲突文件

    7. 使用git status -sb命令查看出现冲突的文件情况,直到所有冲突全部解决完

    8. 运行git commit

    9. 分支合并之后删除无用分支:git branch -d x

当误删了分支时怎么办?

1.使用git log -g 找回之前commit分支的版本号
2.使用git branch [自定义分支名] [分支版本号]命令重新命名这个分支
3.检查文件是否存在

push到远程仓库

① 生成ssh key(只做第一次,一劳永逸)

密钥分为公钥(id_rsa.pub)和私钥(id_rsa)

1
2
3
4
5
6
# 生成密钥
ssh-keygen -t rsa -b 4096 -c
# 查看公钥内容
cat ~/.ssh/id_rsa.pub
# 测试配置是否成功
ssh -T git@github.com

使用ssh地址的好处是不用每次都输入密码。

② 上传代码(经常做)

  1. 新建GitHub repository,复制ssh地址

  2. 本地添加远程参考地址

    1
    2
    3
    4
    5
    6
    git remote add origin git@xxxx

    # 查看本地添加的远程仓库地址
    git remote -v
    # 删除远程仓库地址
    git remote remove [name]
  3. (第一次)push到远程仓库

    1
    git push -u origin master
  4. (此步可能需要)当远程代码有修改时,在push之前还要进行pull操作

    1
    git pull origin master
  5. (非第一次)push

    1
    git push

③ 下载代码

1
git clone git@xxxx

git 高级操作

自定义命令简写

举例:

1
2
3
touch ~/.bashrc
echo 'alias ga = "git add"' >> ~/.bashrc
source ~/.bashrc

执行这三行代码之后就可以用 ga 代替 git add

其他高级操作

将未提交的修改保存起来

1
git stash

将保存而未提交的修改拉出来

1
git stash pop

版权声明:本文作者为「Andy8421」.本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!