1.设置邮箱和name
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
global设置的配置存放在当前用户目录下的.gitconfig文件下使用ls -a命令可以查看,这个文件对当前用户生效。当不使用参数时候配置会保存在.git/config文件里,对该文件下的项目生效。当使用参数--system时候会在/etc/gitconfig文件生成配置信息。
2.git目录的创建
//网上拉取代码
git clone url
//本地配置(到项目目录下
git init
git init后当前目录会生成一个隐藏目录.git里面有一些配置。而git clone会拉取远程项目的配置
3.纳入版本控制
git init新建仓库后实际上版本控制里面没有任何文件,也就是说你现在新建了一个main.cpp但是git并不会帮你上传和检测它的修改。
git add main.cpp //告诉 Git 开始对这些文件进行跟踪,然后提交
git clone克隆某个仓库时,工作目录中的所有文件都属于已跟踪文件,不需要你动手。
4.检测当前文件状态
git status //这个命令会列出文件的状态列出文件的状态。包括的信息为 (当前分支)(未被追踪,修改未暂存,修改未提交的所有文件)
//修改未暂存的文件要用git add添加,才能添加到暂存
//只要修改了文件 就要使用git add添加文件
5.设置忽略文件
//某些文件不需要让git追踪,就可以创建一个.gitignore文件进行文件忽略。(.gitignore就是文件名字)
//该文件下的所有文件都会被git忽略,当然也可以使用正则表达式
//比如
*.cpp
main.py
//这个文件忽略了所有cpp结尾的文件和main.py文件
//你只需要创建编辑文件到你想忽略的文件目录下就行,不需要其他操作
6.查看修改细节
git diff
//这个命令会展示未暂存的修改,精确到哪个文件修改了哪一行
//通俗一点就是你修改了文件,但是没有用git add添加的文件
git diff --cached
//这个可以展示暂存和上次提交的文件差异,也是精确到行
//通俗一点就是你使用了git add提交过的修改文件,和你上一次提交(git commit命令)文件的差异
7.提交更新
git commit
//单单使用这个命令会启动一个文本编辑器,里面会有描述文件变动的文本。
//通过-v参数可以在文本中显示每一行的差异
//一般最开头都有一个空行 你需要在这里写你的提交说明
git commit -m "我更新了代码"
//通过这个命令可以跳过打开文本编辑器的过程
git commit -am "我更新了代码,并且不想使用git add去添加我的更新到暂存"
//通过这个命令可以绕过添加暂存的步骤
8.删除文件
//如果自己手工删除了一个文件比如 main.py。并且这个文件已经加入git 追踪了
//那么就需要运行
git rm main.py//来删除追踪
//如果已经修改过并且加入了缓存 那么还得加一个参数
git rm -f main,py
//如果不是代码丢失而是想删除追踪的话 前面的.gitignore文件是最佳的解决方案
//如果我不小心把配置文件加入了暂存中,但是想在不删除配置文件的情况下移除追踪和在暂存区域删除。之后可以添加带.gitignore文件里
git rm --cached "文件名字"
9.查看更新日志
git log
//可以查看更新日志,时间越近越靠前
git log -p -2
//这个命令可以查看每次提交的更新细节(精确到行),-2表示只展示最近两次
git log -p --word-diff
//精确到单词的差异对比
git log --pretty=oneline
//提交显示在一行 还有其他--pretty=short,--pretty=full和--pretty=fuller
git log --pretty=format:"%h - %an, %ar : %s"
//可以定义输出格式
10.提交撤销操作
git commit --amend
//想要撤消刚才的提交操作,可以使用 --amend 选项重新提交
//比如 a.txt忘了
git commit -m 'initial commit'
git add a.txt
git commit -m "刚刚我交错了" --amend
//这样就可以了
//比如你只是单纯的想改提交数据
git commit -m 'initial commit'
git commit -m "刚刚我交错了" --amend
11.暂存撤销操作
//a.txt不小心添加到暂存里了 撤销数据
git reset HEAD a.txt
12.远程拉码
git fetch [仓库名字]
//这个命令会从远程仓库中拉取本地仓库没有的数据,这个会拉取所有分支
git push [仓库名字][分支名字]
//提交数据
13.标签
git tag
//展示所有标签
//其他不想看了
14.分支
//分支的概念懒得打= =
//下面来看操作
git branch testing
//创建一个testing分支
git checkout testing
//切换到testing分支
git branch -d testing
//删除分支
//切换到要合并的分支,然后合并被合并的分支
git merge testing
//合并有冲突要手动解决
git branch
//查看所有的分支 带*的是当前所在的分支
git branch --merged
//查看当前分支合并的分支,其实完成之后应该删掉被合并分支的
git checkout -b testing
//创建和切换分支
git rebase master
//变基 具体懒得打 主要是为了让历史记录更加简单
//千万不要用在公共仓库