git config -global user.name "Your name"
git config -global user.email "you@example.com"
建立一个存放工程的文件夹
git init命令用于初始化当前所在目录的这个项目
会创建一个隐藏文件 .git
创建 main.c 文件
创建 .gitignore文件,忽略该文件里面有的项目文件
git status 查看项目状态
git add ..
给我目前的这个项目制作一个快照snapshot(快照只是登记留名,快照不等于记录在案,git管快照叫做索引index)
git commit用于将快照里登记的内容永久写入git仓库中,也就是开发者已经想好了要提交自己的开发成果了。
要说一句:切记写开发日志的时候,第一行一定要是少于50字的开发概括信息,而且第二行务必是空行,第三行开始才可以开始细致描述开发信息。这是因为很多版本服务系统中的email机制都会选取log中的第一行为邮件题目。
git commit -a这个命令可以直接提交所有修改,省去了你git add和git diff和git commit的工序
注意:无法把新增文件或文件夹加入进来,所以,如果你新增了文件或文件夹,那么就要老老实实的先git add .,再git commit
git log -p
如果你觉得git log给出的信息太单薄了,可以使用git log -p,这样git不但会给出开发日志,而且会显示每个开发版本的代码区别所在。
总结:先git add你修改过的文件,再git diff并git status查看确认,然后git commit提交,然后输入你的开发日志,最后git log再次确认。
创建分支
git branch experiment 创建一个分支
直接输入git branch,不加任何后续参数,就表示让git列出所有已存在的分支。
前面带“星号”的分支表示当前所在的分支。
切换分支到experiment
git checkout experiment
分支程序OK
git commit -a
在分支上提交工作
切换住干道
git checkout master
git commit -a
git merge experiment
合并分支到主干道
提示合并失败
查看源文件
git迷惑之处在于它不知道是把hello world这行放在前面还是把报时功能这段放在前面。
修改冲突
重新提交
git commit -a
gitk 图形化的git管理界面
合并完分支后,对分支进行删除
git branch -d experiment
-d,表示“在分支已经合并到主干后删除分支”。如果使用大写的-D的话,则表示“不论如何都删除分支”,