Windows:
进入官网下载或百度网盘下载 Git(V2.23_x64)
提取码:uf2x
Ubuntu:
sudo apt-get -install git
安装完成之后打开git命令行(Ubuntu命令行即可操作)
输入以下代码
#查询版本号
git --version
#设置你的姓名(最好是英文)
git config --global user.name “kimalittlestar”
#设置你的邮箱
git config --global user.email “kim_alittlestar@qq.com”
#查看你的姓名、邮箱和所有当前目录下的设置列表
git config --global user.name git config --global user.email git config --list
从本地建立一个全新的仓库:
#跳转到你的项目根目录下
cd /d/EclipsecCode/C_project/
#初始化一个Git仓库
git init
#添加追踪规则,这里添加的规则是 该目录下所有的*.c/.h文件
git add *.c *.h ./**/*.c ./**/*.h
#查看仓库当前的状态
git status
#编写 .gitignore 忽视特定类型的文件
vim .gitignore
#写入以下文本
*.[oad]
#查看当前仓库状态
git status
#提交当前代码 可以使用两种方式
git commit -m “type your commit message“
#或者不带参数,等待他打开默认便捷器输入提交信息文本
git commit
从远程克隆一个仓库:
#跳转到你想要存储的目录下
cd /d/EclipsecCode/robam
#使用克隆命令,期间如果需要输入密码请输入密码
git clone https://github.com/KimAlittleStar/C_project.git
#输入ls 查看文件目录,发现多了一个文件夹C_project
ls
#clone 远程仓库到此结束 到此结束
查看文件状态:
#在git中,除去已经忽略了的文件外,文件分为4种状态。
分别为:未追踪、未修改、已修改、已暂存。使用 git
status 查看项目中文件的状态
git status
文件状态装换流程 :
#未追踪->(git add <filename>)->已暂存 #已暂存->(git commit)->未修改 #未修改->(edit your file)->已修改 #未修改->(git remove )->未追踪 #已修改->(git commit -a)->已暂存
#查看项目中 已修改状态文件项目与该文件最后一次暂存的文件具体更改了哪些地方,可以使用git diff 命令操作
git diff
#如果想要看已暂存的文件和已经在版本库中的文件差异,可以使用 git diff –staged
git diff -staged
#diff还可以查看指定分支、指定文件之间的差异,更多操作请跳转:http://gitbook.liuhui998.com/index.html
#git commit 只会提交staged 状态的文件,使用git status查看 仓库中文件状态。将modified 状态的文件使用 $ git add 改成成为modified状态 然后提交。
git status git add <filename> git commit –m “message”
#使用 git commit –a 可以将所有追踪内的modified 状态和staged状态的文件一次提交。
git commit –a –m “this is all commit test”
查看仓库操作历史:
# 使用git log 可以查看当前仓库操作的历史
git log
#同时你也可以使用 git log –p 来内容上的差异
git log –p
#同时也可以使用git log -<n> -p 来显示最近n次内容上的差异。去掉 -p参数同理。更多使用请参阅:https://git-scm.com/book/en/v2
git log -1 -p
#使用git rm 删除某个追踪文件,或者在磁盘上删除,然后使用 git status 就可以看到删除命令在已修改区域,然后在使用git rm 即可提交。或者使用 git commit –a 提交所有改变
为项目添加远程仓库:
# 首先需要在远程仓库有一个你的目标远程仓库,其次获取你的远程仓库url 。输入以下代码 git remote add <别名> [URL]
git remote add kimhttps://github.com/KimAlittleStar/C_project.git
上传到远程仓库:
#使用git push 推送到远程仓库 git push <别名> <分支名>
git push kim master
#使用git commit --amend 可以覆盖上一次提交, 用于自己错误信息的修改、忘记加入暂存区的文件等,最后git仓库中只会有一个commit
git commit git add <filename> git commit --amend
将暂存态的文件回退到已修改:
#将暂存态的文件回退到已修改需要使用git reset HEAD <filename> 此语句原理实际上是使用仓库中的 <filename>文件覆盖暂存态的文件。详情请参考 https://git-scm.com/book/en/v2/Git-Tools-Reset-Demystified
git reset HEAD -- <filename>
抛弃此次修改的文件:
#使用git checkout -- <filename>可以撤销此次对文件的修改。但是此次修改将会被真正丢弃。再也找不到。原理请参考:https://git-scm.com/book/en/v2/Git-Tools-Reset-Demystified
git checkout -- <filename>
#使用git tag –a <tagName>–m ‘tag message’可以为当前版本添加标签 如果想要添加tag到之前的版本,需要在后面增加 对应版本号的校验码
git tag -a v0.1 -m "using tag test“
#除此之外还可以覆盖tag 使用 –f 参数 没有附带信息的tag(轻量tag) 不输入任何参数 只输入tag名等,详情请参考:http://gitbook.liuhui998.com/3_7.html
添加别名快捷操作:
#使用git config --global alias.<quickName> ‘actrue str’ 可以添加自定义的快捷操作 ;详情请参考https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-Git-%E5%88%AB%E5%90%8D
git config --global alias.last 'log -1 HEAD'
命令行 |
作用 |
使用示例 |
git init |
在当前目录下初始化一个新的git仓库 |
cd <your work directory> git clone |
git clone [URL] |
在当前目录下克隆一个git仓库 也可以后面加目录参数 克隆到指定目录 |
git clone https://code.aliyun.com/lonnox/robam_doc.git |
git status |
查看当前目录中各个文件和操作的状态;文件状态详情请点击 |
git status |
git add <filename> <filename> … |
将当前仓库下的文件状态向上更新,文件状态详情请点击,且支持正则表达式 |
git add *.c *.h ./**/*.c ./**/*.h 详情参考这里 |
git rm <filename> <filename> … |
删除这些文件,并将此操作提交到暂存状态(staged) |
git rm project.out |
git commit |
提交在暂存态的文件或操作,跳出编辑窗口输入提交信息 |
git commit |
git commit –m ‘message’ |
提交 并将 ‘message 作为提交信息’ |
git commit –m “message” |
git diff |
查看已修改的文件和仓库中此文件的区别,如果后面不指定文件名那么将显示所有文件 |
git diff <filename> |
git diff --staged |
查看已暂存的文件与仓库中的区别 |
git diff --staged <filename> |
git remote add <别名> [URL] |
为本地项目添加远程仓库 |
git remote add kim https://github.com/KimAlittleStar/C_project.git |
git push <用户名> <分支名> |
将自己本地的项目上传至服务器 |
git push kim master |
git commit --amend |
将此次提交与上一次提交合并,只记录一次提交 |
git commit --amend -a –m “message” |
git reset HEAD -- <filename> |
抛弃现在的暂存文件使其回退到已修改状态 |
git reset HEAD -- Exfunction.c |
git checkout HEAD -- <filename> |
抛弃此文件的修改 |
git checkout HEAD -- Exfunction.c |
git tag |
查看、修改、添加项目的标签 |
git tag –a v0.1 –m ‘message’ |
git config --global alias.<quickStr> ‘cmd str’ |
使用quickStr 等效替换 cmd str,例如一些固定参数的命令等。 |
git config --global alias.cmit-all 'commit -a' |
后记:
经过这几天的学习,越来越感觉到开源社区的奇妙与能量,这群人都有着一种神奇的能量,让人不由自主的佩服和开心起来。了解他们的起源,和他们的思想,越能感受到这群率真的程序员的智慧。
最后把上面的所有内容整理压缩成了一个小PDF文件,里面的两个目录可以点击让大家方便的跳转到相对应的地方,分享给大家。
git基础使用:
链接:https://pan.baidu.com/s/1pkmG0sOjxP8nhNIPw7NWTA
提取码:mzut