Git基本操作

Git基本操作

【摘要】程序员必备Git基本操作,add、commit、push、checkout、pull…

前言

master:默认开发分支;origin:默认远程版本库。

Git常见命令

这一部分我是在这个下面那个链接里面抄的,人家总结的好我就要抄哈哈哈哈。

初始化操作

1
2
3
4
5
git config --global user.name <name> #设置提交者名字  
git config --global user.email <email> #设置提交者邮箱
git config --global core.editor <editor> #设置默认文本编辑器
git config --global merge.tool <tool> #设置解决合并冲突时差异分析工具
git config --list #检查已有的配置信息

创建新版本库

1
2
git clone <url> #克隆远程版本库  
git init #初始化本地版本库

修改和提交

1
2
3
4
5
git add . #添加所有改动过的文件  
git add <file> #添加指定的文件
git mv <old> <new> #文件重命名
git rm <file> #删除文件
git rm --cached <file> #停止跟踪文件但不删除

提交文件

1
2
3
4
git commit -m <file> #提交指定文件  
git commit -m “commit message” #提交所有更新过的文件
git commit -amend #修改最后一次提交
git commit -C HEAD -a -amend #增补提交(不会产生新的提交历史纪录)

查看提交历史

1
2
3
4
5
6
7
8
git log #查看提交历史  
git log -p <file> #查看指定文件的提交历史
git blame <file> #以列表方式查看指定文件的提交历史
git log <branch> #查看某分支历史纪录
git log --all #查看所有分支历史纪录
git branch -v #每个分支最后的提交
git status #查看当前状态
git diff #查看变更内容

撤销操作

1
2
3
4
git reset -hard HEAD #撤消工作目录中所有未提交文件的修改内容  
git checkout HEAD <file1> <file2> #撤消指定的未提交文件的修改内容
git checkout HEAD. #撤消所有文件
git revert <commit> #撤消指定的提交

分支和标签

1
2
3
4
5
6
7
8
9
git branch -a #显示所有本地分支  
git checkout <branch/tagname> #切换到指定分支或标签
git branch <new-branch> #创建新分支
git branch -d <branch> #删除本地分支
git tag -a #列出所有本地标签
git tag <tagname> #基于最新提交创建标签
git tag -d <tagname> #删除标签
git push origin --delete <branchName> #删除一个远程分支
git branch -D branchName #删除本地分支

合并与衍合

1
2
git merge <branch> #合并指定分支到当前分支  
git rebase <branch> #衍合指定分支到当前分支

远程操作

1
2
3
4
5
6
7
8
git remote -v #查看远程版本库信息  
git remote show <remote> #查看指定远程版本库信息
git remote add <remote> <url> #添加远程版本库
git fetch <remote> #从远程库获取代码
git pull <remote> <branch> #下载代码及快速合并
git push <remote> <branch> #上传代码及快速合并
git push <remote> : <branch>/<tagname> #删除远程分支或标签
git push --tags #上传所有标签

Git实战

上面那一堆命令都是我网上抄的学院派,对于稍微有点Git基础的同学来说,上面那些就差不多了,但是我还是想多BB点东西。

安装Git

1
此处省略

进入文件目录

1
cd path #path代表需要管理代码的第一级目录

初始化

1
git init

git配置

1
2
3
git config --global user.name "aizhangyao" 
git config --global user.email "aizhangyao@hotmail.com"
#如果不设置个人信息,提交的信息将不会有更改者信息,这样会加大项目管理的难度。

ssh key配置

1
2
3
ssh-keygen #生成ssh key
cd ~/.ssh #查看ssh key(将公钥配置到仓库中 操作不用输密码)
cat id_rsa.pub

创建新版本库

(将项目拉取到本地)

1
git clone https://github.com/aizhangyao/aizhangyao.github.io.git

查看分支

1
git branch

切换并新建分支

1
git checkout -b feat-aizhangyao-init-project #分支命名规则feat-姓名-功能

将修改提交到暂存区

1
git add -A

查看暂存区修改的文件

1
git status

撤回修改的文件

1
git reset HEAD 文件名

将暂存区的代码提交到本地仓库

1
git commit -m "feat(blogf): init project" #并附上注释,注明本次提交内容(注释规则feat(blogf): 功能)

将本地仓库的代码推送到远程服务器端

1
git push origin feat-aizhangyao-init-project/master(远程分支名)

Git进阶

冲突处理

注:这部分是之前一个朋友写给我用来学习的,说实话公司现在使用的是SVN,我暂时没有处理过Git冲突,等需要使用的时候再去细啃下面的,就先无脑贴过来了。

master分支有更新(别人写的代码被合进去了,你可以更新一下你本地代码,这也是你每次发merge request必须做得一步)

1.更新远程代码到本地仓库(在自己分支上执行)–本地分支代码是最新的了

1
git fetch

2.将master分支的更新应用到自己分支上

1
git rebase origin/master

3.有可能有冲突(两个人修改了同一文件即会产生冲突),有冲突解决冲突(保留你的修改/保留他的修改/保留双方修改)

4.解决完冲突,保存修改

1
git add .

5.将master分支的更新应用到自己分支上过程中如果被冲突打断,继续rebase

1
git rebase --continue

6.将本地仓库的代码推送到远程服务器端

1
git push origin feat-aizhangyao-init-project -f (-f 参数强制提交, 必须)

现在你的远程分支上分支代码也是最新的了,现在想将自己的代码合进master分支,需要将你在完成此分支上的多个commit合成一个commit,再发merge request

1.查看分支的所有操作记录

1
git reflog

2.将多个commit合并一个commit

1
git rebase -i HEAD~2 (commit次数)

3.推送到远端

1
git push orign 你的分之名 -f (-f 参数强制提交, 必须)

若是感觉操作失误,可以将代码回退到某一版本

1
git reset --hard 65a5e7d(commitId 可以通过git reflog看到)

删除本地分支

1
git branch -D 本地分支名

删除远程分支

1
git push origin --delete 远程分支名

本地分支重命名

1
git branch -m 源分支名 目标分支名

结束语

我就是个菜比,文章里面有错的很正常,您要是发现请指出。
参考文献:

评论