git学习三:git常用命令

备注:
1.第一次使用git必须注册git账号,2种方式注册账号,一种是用git命令,另一种是登录github官网注册。
2.第一次本地工程上传至github上必须注册SSH,因为推送到远程默认使用的是SSH形式
3.从github上抓取远程工程有2种方式,一种是SSH形式另一种是https形式,默认情况下使用SSH形式,而且SSH形式比https形式快,具体实现方式如下:
SSH形式为:git clone git@github.com:xx/xxx.git  (xx表示你github登录名,xxx.git表示该账号下某个工程)
https形式为:git clone https://github.com/xx/xxx.git  (xx表示你github登录名,xxx.git表示该账号下某个工程)

以下为初学者第一次使用git常用命令:
1.初始化配置(重点)
在指定目录下(C:\Users\somnus)右击“Git Bash Here” 进行git账号注册:
git config --global user.name "your name"  注册git全局用户名
git config --global user.email "your email@email.com"  注册git全局邮箱
git config --list   查看git初始化配置是否成功

上述操作成功后在指定目录下(C:\Users\somnus)生成一个".gitconfig"文件,打开该文件里面就是你配置的用户名和邮箱

补充:一般在日常开发中会有多个git仓库,一个是私人仓库,一个是公司仓库则初始化配置需要在不同仓库中设置用户信息

如“Git Bash Here”到私人仓库"person",然后设置局部用户名和邮箱

$ mkdir person 创建个人仓库

$ cd person  指定到个人仓库

$ git init 初始化仓库为git仓库

$ git config user.name "xxx"

$ git config user.email "xxx@example.com"

git config --list   查看git初始化配置是否成功

如“Git Bash Here”到公司仓库"mall",然后设置局部的用户名和邮箱

$ mkdir mall创建个人仓库

$ cd mall指定到个人仓库

$ git init 初始化仓库为git仓库

$ git config user.name "xxx"

$ git config user.email "xxx@example.com"

git config --list   查看git初始化配置是否成功

把本地工程上传到远程github上则先创建SSH key,该方式提交代码不需要输入用户名和密码。github允许添加多个key,若是你自己笔记本操作,公司电脑操作,则需把每台电脑的key添加到github上,那么每台电脑就可以往github上传工程。
在指定目录下(C:\Users\somnus)右击“Git Bash Here”生成默认SSHkey,命令如下:
 $ ssh-keygen -t rsa -C "your email@email.com"

上诉命令回车后提示第一步保存密钥文件名,默认为空,若想要自定义则输入自定义文件名如id_rsa_mall;第二步提示设置密码,默认为空;第三步提示确认密码,默认为空。

生成成功后在指定目录下(C:\Users\somnus)会生成".ssh"文件夹,文件夹下有两个文件 id_rsa 和 id_rsa.pub

把生成的公钥复制到github上,具体操作参考:http://blog.csdn.net/u014079773/article/details/49555989

$ ls -al ~/.ssh 或者 $ cd ~/.ssh  查看本地是否有SSH Key存在
如果终端输出的是:
No such file or directory
那么就说明本地没有SSH key
如果已存在SSH key那么就会显示 id_rsa 和 id_rsa.pub文件的存在以及它的创建日期。

备注:一般在日常开发中会有多个仓库,一个是私人仓库,一个是公司仓库,则生成密钥会针对不同邮箱生成不同密钥。

在指定目录下(C:\Users\somnus)生成默认sshkey:
$ ssh-keygen -t rsa -C "your email@email.com"   

在指定目录下(C:\Users\somnus)生成指定sshkey:
ssh-keygen -t rsa -f ~/.ssh/id_rsa_person -C "your email@email.com"

上次命令回车后第一步提示设置密码,默认为空;第二步提示确认密码,默认为空。

配置多个git账号
在~/.ssh/下面新建一个文件
cd ~/.ssh/
touch config
config内容如下:

#github server company
#域名地址的别名
Host git.cnsuning.com 
#这个是真实的域名地址             
Hostname git.cnsuning.com 
#配置使用用户名  
User 88404677
#这里是id_rsa的地址          
IdentityFile ~/.ssh/id_rsa  

#验证设置是否成功:ssh -T git@git.cnsuning.com //@后面的参数就是上面配置的host名称
#运行成功则控制台显示:Welcome to GitLab, 88404677!

#github server person
#域名地址的别名
Host github.com  
#这个是真实的域名地址                            
Hostname github.com   
#配置使用用户名              
User love-somnus  
#这里是id_rsa的地址                
IdentityFile ~/.ssh/id_rsa_person 

#验证设置是否成功:ssh -T git@github.com //@后面的参数就是上面配置的host名称
#运行成功则控制台显示:Hi your name one in github ! You've successfully authenticated, but GitHub does not provide shell access.

 

补充:(重点勿删除)
git远程连接方式为SSH形式和http形式,SSH是默认形式需要生成密钥,然后将生成的密钥复制到github上,则每次操作git不再需要输入用户名和密码;
而http形式则每次都需要输入用户名和密码,则如何设置git操作不需要输入用户名和密码
首先查看当前git连接是什么形式:git remote -v
若是http形式则修改为SSH形式:git remote set-url origin git@github.com:username/project.git

 

2.创建工程并上传至github远程服务(重点)
第一次创建工程并提交至远程服务首先登录github官网创建远程仓库,点击“Create A Repository”创建一个项目,点击“New Repository”,然后“Project Name”输入“learngit”,“Description”填写描述, 在本地创建一个Github文件夹,在里面再创建一个learngit文件夹,并将项目文件放进去,在“learngit”文件夹上右击“Git bash”出现命令框

git init         初始化仓库learngit
git checkout -b dev 创建dev分支并切换到dev 
git add .       添加所有文件(add与“.”之间有空格,否则不识别的语法)
git add file  添加某个文件
git commit -m 'version 1.2'   提交修改文件
git commit -a -m "version1.2"   提交所有修改
git remote add origin git@github.com:somenone/learngit.git      添加远程仓库(用SSH的形式,关联一个远程仓库)
git push -u origin master  首次推送远程master分支
git push origin master 推送远程master分支
git push -u origin dev 首次推送远程dev分支
git push origin dev 推送远程dev分支

备注:
1.由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。之后执行就是 git push origin master
2.在日常开发中一般不会在master分支上开发,故需要创建dev分支并切换至dev分支
3.git默认当前分支为master

3.修改本地文件上传至远程仓库(重点)
修改好本地文件后在“learngit”文件夹上右击“Git Bash Here”出现命令框
如果添加了内容则先要

git add .  添加所有文件
git commit -m "version 1.2"   提交修改
git commit -a -m "version1.2"   提交所有修改(-a表示add -m表示message)
git pull origin master 更新远程master分支
git pull origin dev 更新远程dev分支
git push origin master 推送远程master分支
git push origin dev 推送远程dev分支

备注:git要求每次修改文件,添加文件必须先将远程分支更新到本地,然后本地代码add再commit最后再推送到远程分支

4.文件管理

git add filename   修改文件提交到本地暂存区
git add .    修改所有文件提交到本地暂存区(注意add与“.”之间有个空格)
git commit -m "message"   提交修改
git commit -a -m "message"  提交所有修改
git checkout head readme.txt helloword.txt    撤销1,2文件修改(注意文件名之间空格)
git checkout head .    撤销所有文件修改(注意head与“.”之间有个空格)
git status       查看当前仓库状态(如仓库做了修改,增加,删除等操作)
git rm filename      删除文件
git diff filename    查看修改文件具体内容即比较当前文件与暂存区文件差异
git reset filename   从暂存区恢复文件
git reset --hard HEAD^   恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改

5.仓库管理
git init      初始化仓库
git clone git@github.com:someone/xxx.git     克隆远程仓库(SSH形式)
git clone https://github.com/someone/xx.git  克隆远程仓库(https形式)
git remote add origin git@github.com:someone/xxx.git  添加远程仓库master(SSH形式)
git remote add origin https://github.com:someone/xxx.git  添加远程仓库master(https形式)
git pull  https://github.com/someone/xxx.git   更新远程仓库至本地(https形式,要先选中仓库)
git pull git@github.com:someone/xxx.git     更新远程仓库至本地(SSH形式,要先选中仓库)
git pull origin master 更新远程master分支
git pull origin dev 更新远程dev分支
git push -u origin master  首次推送远程master分支
git push -u origin dev     首次将本地dev分支提交到远程dev分支,并且track
git push origin master  推送远程master分支
git push origin dev  推送远程dev分支
git remote -v  查看当前远程仓库连接形式(SSH或http)
git remote rm name  删除远程仓库
git remote set-url origin [newUrl]  修改远程仓库形式(如当前http形式修改为SSH形式)

案例:
SSH方式:
git remote set-url origin git@github.com:username/project.git
http形式:
git remote set-url origin http://github.com:username/project.git

6.分支管理

git fetch 更新远程分支(切换到当前master分支)
git fetch -p 更新远程所有分支(切换到当前master分支)
git branch      查看当前所有分支(当前分支前面会有一个"*")
git branch -a   查看所有分支(当前分支和远程分支)
git branch dev     创建dev分支 
git chekcout dev  由某个分支切换至dev分支
git chekcout –b dev   创建dev分支并切换到dev
git merge dev    合并dev分支到当前分支master(必须切换到当前master分支才可以合并分支,快速合并)
git branch –d dev    删除dev分支(合并完成后没有出现冲突删除分支,必须切换到当前master分支,删除的是本地分支) 
git branch -D dev    强制删除为合并的分支dev(必须切换到当前master分支,删除的是本地分支) 
git checkout –b dev origin/dev   建立本地的dev分支追踪远程仓库的dev分支(本地分支与远程分支一致)
git merge  --no-ff -m "message" dev   合并dev分支到当前master分支(禁用"Fast-Forward"合并可以生成merge提交) 
git merge origin/master  将远程主分支合并到本地当前分支
git merge origin/dev       将远程dev分支合并到本地dev分支
git pull origin master 更新远程master分支
git pull origin dev 更新远程dev分支
git push origin master    推送本地主分支推到远程主分支  
git push  origin dev        推送本地dev分支到远程dev分支

7.历史记录管理(常用)
git log       查看所有历史记录(从最近到最远提交日志,显示详细信息)
git log filename  查看指定文件每次提交记录
git reflog    记录每一次提交记录(即查看所有分支所有记录)
git log --graph  查看分支合并情况

8.暂存管理
git stash       暂存当前分支
git stash list  查看暂存分支
git stash apply  恢复暂存区但不删除内容
git stash drop   删除暂存区
git stash pop     恢复暂存区并删除内容

9.标签管理
git tag V1.0     创建标签
git tag             查看标签
git show V1.0   查看标签信息
git tag -a V1.0 -m "version is 1.0"   创建带有指定说明标签(-a指定标签名 -m指定说明文字)
git  tag -d V1.0        删除标签
git push origin V1.0     推送某个标签到远程
git push origin --tags    推送所有标签到远程
git push origin:refs/tags/V1.0    删除远程标签

10.忽略一些文件、文件夹不提交
在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如target
bin
*.db
.idea/
*.iml
*.classpath
*.project

11.git编辑 按Esc退出输入模式进入命令行模式也是系统默认模式。

i(vi)  进入编辑( 按Esc退出输入模式进入命令行模式)
:qa 退出编辑( 按Esc退出输入模式进入命令行模式)
:wq 保存修改并退出( 按Esc退出输入模式进入命令行模式)
q!:放弃修改并退出( 按Esc退出输入模式进入命令行模式)
clear 清屏 

 

 

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值