Git基本操作-命令行
#获取git版本git--version#在本地文件夹下初始化一个新的git仓库,创建成功后ls -al可以看到.git的隐藏仓库gitinit#1.暂存操作:工作区->暂存区#暂存指定文件 git add 文件名gitadd123.txt#暂存所有改动的文件gitadd.#查看暂存区文件列表gitls-files#查看暂存区和工作区状态gitstatus#清空暂存区(工作区不变)gitreset#2.提交操作:暂存区->本地仓库#暂存足够多之后可以提交,提交时必须写描述gitcommit-m"提交描述"#查看提交日志(回滚会消失)gitlog#查看提交日志(优化版)gitlog--pretty=oneline--all--graph--abbrev-commit#commit回滚gitreset--hard提交的id(用git log查询id)#git log加强版,可以查看所有提交日志(回滚也不会消失)gitreflog#暂存区覆盖工作区的内容(工作区修改的内容不想要,想恢复之前暂存的内容)gitrestore#首次获取代码gitclone 仓库地址#后续拉取代码gitpull 仓库地址#从远程库抓取到本地仓库,但不进行合并操作gitfetch#合并gitmerge分支操作:
#查看当前所在分支gitbranch#创建新的分支: git branch 新分支名 (但仍停留在当前分支)gitbranch dev#安全删除分支(删除分支前需要进行各种检查): git branch -d 分支名#不能删除当前所在的分支,得先切换到其他分支再执行删除gitbranch-ddev#强制删除分支: git branch -D 分支名gitbranch-Ddev#切换分支 git checkout 分支名gitcheckout dev01#新建并切换分支(例如新建dev01并切换到dev01分支)gitcheckout-bdev01#合并分支,比如当前在master分支,想将dev01分支合并入master分支,执行gitmerge dev01解决冲突
提示需要解决冲突后,修改冲突代码,然后重新提交一次gitadd.#不需要写commentgitcommit#进入vim:wq保存远程仓库
推送代码
#在本地仓库配置添加一个远程仓库origin(默认远程仓库就是这个名字)#(一个本地仓库可以对应多个远程仓库)gitremoteaddorigin 远程仓库的地址gitremoteaddorigin git@10.12.3.163:my_group1/my_project1.git#如果执行没有报错代表配置成功#查看远程仓库gitremote#推送代码到远程仓库 git push 远程名称 本地分支名:远程分支名gitpush origin master:master#简化版本gitpush origin master#强制用本地的覆盖远程的加-fgitpush-forigin master# --set-upstream 推送到远端的同时建立起与远端分支的关联联系#第一次push带绑定关系后,以后只需要git push就行gitpush --set-upstream origin master:master#查看绑定关系gitbranch-vv下载代码
git clone
#从远程仓库第一次拉取代码#可以在后面跟一个目录名,会保存在该目录,如果不加,默认就是项目名称创建文件夹,如my_project1gitclone git@10.12.3.163:my_group1/my_project1.git#结束后会在当前目录生成my_project1的文件夹后续继续拉取最新代码
直接执行git pull,不用带参数,拉取+合并到本地
gitpullgit fetch + git merge方法
#抓取到本地,但不会合并gitfetch#再手动合并origin/master到本地gitmerge origin/master合并到本地的时候也会产生冲突,解决冲突的方式与之前相同
1.安装git
2.设置
安装过后首要任务就是设置用户名和邮箱
#git config --global user.name 你的用户名gitconfig--globaluser.name"tom"#git config --global user.email 你的邮箱gitconfig--globaluser.email"hello@example.com"#设置完后检查是否设置成功gitconfig--globaluser.namegitconfig--globaluser.email3.为常用指令配置别名
#新建配置文件touch.bashrc#编辑配置文件vim.bashrcaliasgit-log='git log --pretty=oneline --all --graph --abbrev-commit'aliasll='ls -al'#使配置生效source.bashrc4.新建忽略配置
在目录下创建.gitignore文件,在文件中定义不需要上传的
touch.gitignore#定义规则vim.gitignore#规则#1.可以直接写文件名,文件会被自动忽略,不会commit123.txt#2.也可以写通配符,如所有以.doc结尾的文档*.doc5.设置SSH登录(可选)
#在本机生成密钥对ssh-keygen-trsa#不断回车,如果公钥已存在,会自动覆盖#获取公钥cat~/.ssh/id_rsa.pub#密钥备份mv~/.ssh ~/.ssh.bak一、 如果之前使用的是ssh方式推送代码,但是现在想采用http方式怎么办?
#从gitlab获得到的链接ssh://git@10.12.3.161:7779/my_group1/my_project2.git http://10.12.3.161:7777/my_group1/my_project2.git#先查看当前是什么链接gitremote-v#返回origin ssh://git@10.12.3.161:7779/my_group1/my_project2.git(fetch)origin ssh://git@10.12.3.161:7779/my_group1/my_project2.git(push)#修改链接gitremote set-url origin http://10.12.3.161:7777/my_group1/my_project2.git#检查gitremote-v#返回origin http://10.12.3.161:7777/my_group1/my_project2.git(fetch)origin http://10.12.3.161:7777/my_group1/my_project2.git(push)gitpush origin master