git bash常用命令

个人笔记,关于gitbash的常用命令

1. 常用文件和目录操作

cd /           进入根目录
cd ~           进入用户目录user
cd ..          返回上级目录
cd ../..       返回二级
cd ./xxx       进入当前目录下的xx目录

ls             查看目录中的文件
ls -a          查看目录中的文件,包含隐藏文件
ls -al         查看目录下所有文件及基本信息

rm -f .gitignore  删除文件.gitignore
rmdir dir1        删除目录dir1
rm -rf dir1       删除目录dir1并且删除其中的所有文件

mkdir dir1        创建目录dir1
touch  xx.xx      新建文件xx.xx

2. git配置

git config --global user.name "xxname"   
git config --global user.email "xxemail@xx.com"

查看配置
git config --global user.name
git config --global user.email

3. 解决gitbash乱码问题

git config --global core.quotepath false

在安装目录下etc/bash.bashrc文件最后加入下面两行
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

4. git常用命令

仓库初始化
git init
文件添加到暂存区
git add .
文件提交到本地仓库
git commit -m "my comment"

git文件状态查看
git status

git日志查看
git log --pretty=oneline --all --graph --abbrev-commit

版本回退
git reset --hard commitID

查看已经删除的log
git reflog

添加文件至忽略列表,新建.gitignore文件,向其中添加要忽略的文件或者目录
touch .gitignore

5. 分支

查看分支
git branch
创建分支
git branch 分支名
切换分支
git checkout 分支名
创建并切换分支
git checkout -b 分支名

合并分支,比如合并到master,先切换到master,然后执行
git merge 分支名

删除分支,强制删除
git branch -d 分支名
git branch -D 分支名

解决合并冲突
先手动解决冲突,修改冲突文件,然后 git add .保存,然后git commit提交

6. 远程仓库

生成SSH公钥
ssh-keygen -t rsa
查看公钥
cat ~/.ssh/id_rsa.pub

将公钥添加至远程账户,然后验证公钥是否设置成功
ssh -T git@gitee.com

连接远程仓库
git remote add origin 远程仓库SSH链接

查看远程仓库
git remote

推送到远端的同时并且建立起和远端分支的联系,本地master对应远端分支origin
git push --set-upstream origin master

查看本地分支和远端分支的联系
git branch -vv

建立分支联系之后可以直接push
git push
获取远端更新
git fetch
拉取远端更新(获取并且合并)
git pull

远端和本地都修改了同一个文件的同一个位置,直接拉取会有冲突,需要先获取更新,即fetch,然后本地解决冲突合并再提交

7. git rebase用法

7.1 合并提交记录
//初始版本V1.0
version = 1.0
a = 1;
b = 2;
c = a + b;
//修改版本V1.1
version = 1.1
a = 2;
b = 2;
c = a + b;
//修改版本V1.2
version = 1.2
a = 2;
b = 3;
c = a + b;

此时我们查看修改记录是这样的,有三次提价记录,那么如果我们想合并这三次提交记录怎么办呢

* 2eafeaf (HEAD -> master) v1.3 b = 3
* 1fd0943 v1.1 a = 2
* 80c625c v1.0 a = 1 b = 2 c = a+ b

使用git rebase

使用命令
git rebase -i HEAD~4

注意这里使用HEAD~4弹出来的包括我们的三次修改以及前一次的修改

pick f003170 add aa bb cc
s 80c625c v1.0 a = 1 b = 2 c = a+ b
s 1fd0943 v1.1 a = 2
s 2eafeaf v1.3 b = 3

从上到下的顺序中,第一个一定要是pick,如果第一条是s,会看到s是红色的,rebase会失败。所以合并的实质是把新添加的提交记录合并到就得记录上,如果想把三条合成一条,那么使用git rebase -i HEAD~4,将后三个改成s压缩既可以了,修改第一个提交记录生成新的记录

7.2 合并分支
master分支
version = 1.3
a = 2;
b = 3;
c = a + b;

新建分支newfeature,修改到如下内容并且提交
version = 1.4
a = 2;
b = 3;
c = 0;
c = a + b;

切回到master继续开发,并且提交
version = 1.5
a = 2;
b = 3;
c = a + b;
c++;

这时候切换到newfeature分支,newfeature分支想拥有master分支的更改,那怎么办呢
    
这时候就可以使用git rebase master

rebase之后的结果
version = 1.5
a = 2;
b = 3;
c = 0;
c = a + b;
c++;
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐