介绍
开源的分布式版本控制系统,常用的还有cvs,subversion,它采用分布式版本库方式,不必服务器端软件支持。
查看git的版本
git --version
配置工作环境变量
用户信息
账号(–global全局变量,不加指当前项目仓库)
git config --global user.name "用户名"
邮箱
git config --global user.email 邮箱号
保存密码
git config --global credential.helper 密码
配置信息存放文件:
在 Windows 系统上,Git 会找寻用户主目录下的 .gitconfig 文件。
主目录即 $HOME 变量指定的目录,一般都是当前用户目录 C:\用户$USER。
配置sshkey(生成sshkey的名称,不做限制)
ssh-keygen -t rsa -C "sshkey名称"
一般目录在C:\User\当前用户\.ssh\id_rsa.pub
,配置id_rsa.pub中的公钥
问题:
配置好ssh,第一次clone,会提示ED25519 key fingerprint,This key is not known by any other names
原因:
.ssh文件夹下缺少known_hosts文件
解决:选择yes,会自动创建known_hosts,也就是说此提示可以忽略,不影响clone
查看配置
git config --list
或(查看指定某个变量)
git config user.name
创建本地仓库
初始化本地git仓库,把当前目录变成git可以管理的仓库
git init
提交文件
添加所有文件
git add -A
git add [文件 如*.java]
git commit -a -m "[提交说明 如:初始化项目版本]"
仓库关联
添加关联远程仓库
git remote add origin [远程仓库地址]
关联本地仓库
git push -u origin master
远程仓库的提交(第二次及之后)
git push
拷贝项目
在指定目录下右键git bash here
git clone -b [分支名] [repo远程仓库地址] [directory指定目录或执行新的项目名称]
这个操作,这样我们就把指定分支的代码clone 到本地了,不指定默认是master分支的代码
git clone -b
查看仓库状态,显示有变更的文件,查看是否还有未提交
git status
比较文件的不同,即暂存区和工作区的差异
git diff
回退版本
git reset
版本回退一个版本
git reset --hard HEAD^
版本回退两个版本
git reset --hard HEAD^^
版本回退多个版本
git reset --hard HEAD~100
缓存区移除文件,使该文件变为未跟踪的状态
git rm --cached [文件名]
不仅将该文件从缓存中删除,还会将物理文件删除
git rm --f 文件名
删除工作区文件,删除一个文件,也可以删除一个目录
git rm
历史提交记录,查看最近日志
git log
远程仓库操作
git remote
查看远程库信息
git remote -v
删除关联的远程仓库信息(注意这是删除远程仓库,不是分支哦)
git remote rm origin(仓库名称)
关联本地仓库到远程仓库
git remote add origin [远程仓库地址]
从远程仓库拉取代码,仅更新不合并
git fetch
下载远程代码并合并,拉取并合并,相当于fetch和merge
git pull
上传远程代码并合并
git push
push上传指定的提交记录(个人觉得不方便使用,还是做好及时commit及push)
git push <remotename> <commit SHA>:<remotebranchname>
<remotename> 远程仓库名,默认为origin
<commit SHA> 提交的唯一码
<remotebranchname> 远程分支名
上面的命令会将暂存区内<commit SHA>代表的提交以及其之前尚未推送到远程的提交一起提交到远程。
分支操作
列出分支
git branch
新分支。第一次提交默认创建master分支
git branch (branchname)
切换分支
git checkout (branchname)
删除分支
git branch -d (branchname)
合并分支
git merge (branchname)
远程仓库
github,gitee,也可以自己搭建私有git服务器(gitlab)
删除了已提交到远程仓库的文件,强制拉起远程仓库文件
git fetch --all (拉取全部)&& git reset --hard origin/master(回退到远程仓库版本) && git pull(拉取并合并)
git fetch --all && git reset --hard origin/master && git pull
更多命令参考gitee官网下方的Git大全
https://gitee.com/all-about-git