前言
以前对于代码的版本控制都使用了Git对应的客户端工具(SourceTree、TortoiseGit)。由于工作的需要,现在要转用Git的命令来管理代码(突然还有点儿不习惯),所以对Git的常用命令学习了一下,总结记录下来,对有需要的人可以直接获取。如果你对搭建Git服务器仓库感兴趣可以戳:http://www.linuxidc.com/Linux/2016-05/131057.htm
Git常用命令
1. 设置用户名和邮箱git config --global user.name "yourname"
git config --global user.email "youremail@mail.com"
查看设置的用户名和邮箱:git config --list
生成公钥(连接远程仓库需要用到):ssh-keygen -t rsa -C "youremail@example.com"
2. git分支操作1】查看分支
git branch(查看本地分支)、git branch -r(查看远端分支)、git branch -a(查看所有分支)
2】创建分支git branch user_branch_name 在本地创建一个分支;
git checkout -b user_branch_name在本地创建一个分支,并且立即切换到这个分支;
3】本地分支切换git checkout dev 从其他分支切换到dev分支;
4】分支合并git merge的工作流程:将指定分支合并到当前分支。
如:将dev分支合并到master分支需要进行两步:
1)切换到mastr分支:git checkout master
2)将dev分支合并到master分支:git merge dev
5】分支删除删除本地分支:git branch -d branch_name 注意:不能删除当前所在分支
删除远端分支:git branch -r -d origin/remote_branch_name
git push origin --delete remote_branch_name
通过推送一个空的分支到远端,用空分支覆盖掉远端分支,从而删除这个远端分支:git push origin :remote_branch_name
删除已被删除的远程分支所对应的本地分支:git fetch -p
6】推送本地分支到远端推送指定分支到远端(非当前所在分支):git push origin local_branch_name:remote_branch_name
推送当前分支到远端:git push origin remote_branch_name
7】拉取远端分支
直接拉取某一支:git fetch origin remote_branch_name:local_branch_name(不会切换到新建分支)
git checkout -b local_branch_name origin/remote_branch_name(会切换到新建的分支,会自动跟踪远程分支)
在初次克隆时直接克隆某一支(默认是克隆master分支):git clone repository -b remote_branch_name
8】为当前分支设置上游分支:git push --set-upstream origin remote_branch_name
git push -u origin remote_branch_name
3. git push操作
git push <远程主机名> <本地分支名>:<远程分支名> 被操作的分支在前面
1】git push origin master :将本地的master分支推送到origin主机的master分支。如果master不存在则会被新建。
2】git push origin:将当前分支推送到origin主机的对应分支。
3】git push:用于推送存在上游分支的分支。
4. git pull操作
git pull <远程主机名> <远程分支名>:<本地分支名>
1】git pull origin reomote_branch_name:local_branch_name :取回主机上的分支与本地的分支合并;
2】git pull origin remote_branch_name :取回远程分支与当前所在分支合并;
3】git pull origin :本地当前分支自动与对应的origin主机的追踪分支合并;
4】git pull :当前分支与唯一一个追踪分支合并;
5. git status 查看文件状态
命令用于显示工作目录和暂存区的状态,能看到那些修改被暂存到了, 哪些没有, 哪些文件没有被Git tracked到。
git add -f filename:看添加被忽略的文件;
git add huang/*.txt:添加huang目录下及其子目录下“*.txt”文件的内容;
git add -A:添加所有文件改变操作;
7. git diff操作
git diff filename:比较当前文件和暂存区的差异;
git diff branch1 branch2:比较两个分支间的差异;
git diff --staged:比较暂存区和版本库的差异;
git diff --cached:比较暂存区和版本库的差异(查看已经git add,但未git commit的改动);
git diff --stat:仅仅比较统计信息;
git diff:直接比较当前工作目录中当前文件和暂存区的差异;
8. git reset 操作
git reset HEAD filename:如果发现错误的将不想暂存的文件git add 进索引后,想回退取消可以使用该命令;
git reset HEAD :取消所有git add进索引的文件;
版本回退
git reset --hard HEAD^:回到上一个版本;
git reset --hard HEAD~3:回到上三个版本;
git log:查看版本信息,展示出来的如下图:
git reset --hard 版本号:回到指定的版本;
git reflog:查看每一次指令信息;