记录每次代码的变更,以便将来查阅特定版本的修改情况
完成多人协作(必须配合远程仓库)
分类:
集中式(SVN、CVS、…)
集中式版本管理软件的特点是:代码的版本集中到一个服务器上。问题是,如果没有网络或者服务器崩溃,将无法进行版本管理。
分布式(Git、HG、bazaar、…)
分布式版本管理软件的特点是,代码的版本分布到每个计算机上。99%的操作都是在自己的计算机上完成。
官网下载地址:https://git-scm.com
用户名,理论上随意配置,但最好配置成和你的 码云、Github 相同的用户名邮箱,理论上随意配置,但最好配置成和你的 码云、Github 相同的邮箱
windows 用户,在任何文件夹空白处,鼠标右键,打开 “Git Bash Here”
;Mac 用户打开终端窗口
在出现的终端窗口中,输入 git config --global user.name "xxx"
,回车执行该命令,用以配置用户名
git config --global user.name "xxx"
在出现的终端窗口中,输入 git config --global user.email "xxx"
,回车执行该命令,用以配置邮箱
git config --global user.email "xxx"
再次输入,显示当前的用户名和邮箱,配置成功。
初始化本地仓库后,项目才能被跟踪。
使用:
- 在项目文件夹下打开 Git
- 输入
git init
- 在本地项目会有一个 .git 的隐藏文件夹,说明跟踪成功。
git init
初始化 git 之后,记录每一次变更。
每一次想要记录时,都要进行记录更变。
注意:add . 中间有空格
git add .
git commit -m '要记录的名字'
git log
单行查看简略版日志
git log --oneline
- 1
查看最近 n 次提交
git log -n
- 1
可以查看到当前版本之后的日志
git log --reflog
- 1
- 也可以这样配合使用
git log --reflog --oneline
- 1
git log 更多选项参见官网: https://git-scm.com/docs/git-log
如果更变日志比较多,后面会出现代码输入提示,以 : 开头,
可以回到任意历史版本。
- 版本号是40位长的一个字符串,它保证每个版本的版本号是唯一的。
- 实际使用中,可以只使用版本号的前几位即可,只要不重复就可以用。
git reset --hard 版本号
命令用于查看在你上次提交之后是否有对文件进行再次修改。
git status
可以使用简短的输出,只显示文件
git status -s
工作区 => add => 暂存区 => commit => 仓库区
代码文件夹 - 写代码的地方。
代码更变后 - 暂时存放的区域。
只有记录到本地仓库才能形成一个版本,代码才真正不会丢失。
将工作区全部改动添加到暂存区
git add .
指定文件添加到暂存区
git add <file>
全部提交到本地仓库,形成一个版本
git commit -m
指定文件提交到本地仓库,形成一个版本
git commit <file> -m
将工作区的改动更新到暂存区,同时提交到仓库。
注意:不能提交新文件,对新增的文件无效。
git commit -a -m
撤销,指的是将最后一次提交的内容撤销到暂存区、工作区;或者将刚刚暂存的内容撤销到工作区。
撤销指定的文件
git reset <file>
撤销全部文件
git reset .
撤销指定文件
git checkout <file>
撤销全部
git checkout .
该命令后不能指定文件。
git reset --hard
git reset --hard 版本号
git log // 获取提交信息
git rebase -i (commit-id) // commit-id 为提交版本的 hash code
使用命令后,打开一个文件,将需要删除版本前面的pick改为drop
$ git pull
You are not currently on a branch, so I cannot use any
'branch..merge' in your configuration file.
Please specify which remote branch you want to use on the command
line and try again (e.g. 'git pull ' ).
See git-pull(1) for details.
解决办法:
# 首先
git checkout -b temp
# 其次
git checkout master
恢复到 master repository
的状态,然后就可以 pull
了