【摘要】程序员必备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
| cd path #path代表需要管理代码的第一级目录
|
初始化
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 checkout -b feat-aizhangyao-init-project #分支命名规则feat-姓名-功能
|
将修改提交到暂存区
查看暂存区修改的文件
撤回修改的文件
将暂存区的代码提交到本地仓库
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.更新远程代码到本地仓库(在自己分支上执行)–本地分支代码是最新的了
2.将master分支的更新应用到自己分支上
1
| git rebase origin/master
|
3.有可能有冲突(两个人修改了同一文件即会产生冲突),有冲突解决冲突(保留你的修改/保留他的修改/保留双方修改)
4.解决完冲突,保存修改
5.将master分支的更新应用到自己分支上过程中如果被冲突打断,继续rebase
6.将本地仓库的代码推送到远程服务器端
1
| git push origin feat-aizhangyao-init-project -f (-f 参数强制提交, 必须)
|
现在你的远程分支上分支代码也是最新的了
,现在想将自己的代码合进master分支,需要将你在完成此分支上的多个commit合成一个commit,再发merge request
1.查看分支的所有操作记录
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 push origin --delete 远程分支名
|
本地分支重命名
1
| git branch -m 源分支名 目标分支名
|
结束语
我就是个菜比,文章里面有错的很正常,您要是发现请指出。
参考文献: