在 Windows 系统中可以安装 Git for Windows 客户端 :
'把当前所在目录变成一个本地仓库'
git init
'查看当前本地库状态'
git status
'新建文件,并跟踪此新建文件,即把新增文件添加到暂存区,以备提交'
echo 'hello world' > one.txt
git add one.txt
'如果对多个文件或目录进行了增删改,可以使用 git add . 命令全部添加到暂存区'
git add .
'如果要撤销暂存区的修改怎么办?
根据上图的提示,执行 git reset -- [文件名] 或者 git rm --cached [文件名] 命令即可'
git reset -- one.txt
'如果省略最后的文件名,把命令写成 git reset -- 即可把暂存区的全部修改撤销。'
git reset --
'将执行 git commit 命令把暂存区的修改提交到版本区,生成一个新的版本。'
git commit
git commit -m "你的注释"
git commit .gitignore -m "忽略master文件"
'打开终端使用 git --version 命令查看版本'
git --version
'克隆 GitHub 上的仓库到本地'
git clone [仓库地址]
git clone https://github.com/meiqua/shape_based_matching.git
'查看本地仓库所关联的远程仓库信息:'
git remote -v
'克隆远程仓库到本地时,还可以使用 -o 选项修改主机名,在地址后面加上一个字段作为本地仓库的主目录名'
git clone -o originnn https://github.com/meiqua/shape_based_matching.git haha
'把当前所在目录变成一个本地仓库'
git init
'获取帮助'
git --help
'查看当前本地库状态'
git status
'新建文件,并跟踪此新建文件,即把新增文件添加到暂存区,以备提交'
echo 'hello world' > one.txt
git add one.txt
'如果对多个文件或目录进行了增删改,可以使用 git add . 命令全部添加到暂存区'
git add .
'如果要撤销暂存区的修改怎么办?
根据上图的提示,执行 git reset -- [文件名] 或者 git rm --cached [文件名] 命令即可'
git reset -- one.txt
'如果省略最后的文件名,把命令写成 git reset -- 即可把暂存区的全部修改撤销。'
git reset --
'查看工作区被跟踪的文件的修改详情'
git diff
`注意,只有在版本区中存在的文件才是被跟踪文件。
此时会跳到新的页面,即工作区修改详情页,按 Q 退出此页面`
'查看暂存区的全部修改'
git diff --cached
'将执行 git commit 命令把暂存区的修改提交到版本区,生成一个新的版本。'
git commit
git commit .gitignore -m "忽略master文件"
'查看版本区的提交历史记录'
git log
git log [分支名]
git log --oneline
git log -n
git log --author [贡献者名字]
git log --graph
git log --reverse
'配置个人信息'
git config --global user.email "写入你自己注册 GitHub 账号的邮箱"
git config --global user.name "你自己的 GitHub 账号名字"
git config -l
'配置文件也是可以直接手动修改'
cat -n ~/.gitconfig
sudo vim ~/.gitconfig
'介绍一个超级实用、使用频率极高但几乎所有 Git 教程都不重视的命令,它用来查看全部分支信息:'
git branch -avv
'将未添加到暂存区的修改,也就是工作区的修改也一并提交,但会略过未被跟踪的文件,比如新建文件 one.txt'
git commit -am xxxxx
'将本地新增的提交推送到 GitHub 远程仓库中'
git push
'撤销最近的一次提交,将修改还原到暂存区。'
git reset --soft HEAD^
`--soft 表示软退回,对应的还有 --hard 硬退回,后面会讲到,HEAD^ 表示撤销一次提交,
HEAD^^ 表示撤销两次提交,撤销 n 次可以简写为 HEAD~n。`
'强制推送到远程'
git push -f
`本地仓库的 master 分支与远程仓库的 origin/master 分支在提交版本上有了冲突,又叫做提交时间线分叉。因为刚才的提交操作不是基于远程仓库 origin/master 分支的最新提交版本,而是撤回了一个版本。这种情况下也是可以将本地 master 分支推送到远程仓库的,需要加一个选项 -f ,它是 --force 的简写,这就是强制推送`
'reflog 记录只存在于本地仓库中,本地仓库删除后,记录消失。'
git reflog
'回退到某个版本'
git reset --hard [版本号]
git reset --hard HEAD@{2}
`其中 HEAD@{2} ,这个命令的意思是回到当前分支最近两次提交版本变化前`
文章目录
- 1、克隆 GitHub 上的仓库到本地
- 2、Git 基础操作
1、克隆 GitHub 上的仓库到本地
当我们在 GitHub 上创建一个仓库时,同时生成了仓库的默认主机名 origin,并创建了默认分支 master。GitHub 可以看成是免费的 Git 服务器,在 GitHub 上创建仓库,会自动生成一个仓库地址,主机就是指代这个仓库,主机名就等于这个仓库地址。克隆一个 GitHub 仓库(也叫远程仓库)到本地,本地仓库则会自动关联到这个远程仓库,执行 git remote -v
命令可以查看本地仓库所关联的远程仓库信息:
Git 要求对本地仓库关联的每个远程主机都必须指定一个主机名(默认为 origin),用于本地仓库识别自己关联的主机,git remote
命令就用于管理本地仓库所关联的主机,一个本地仓库可以关联任意多个主机(即远程仓库)。
克隆远程仓库到本地时,还可以使用 -o
选项修改主机名,在地址后面加上一个字段作为本地仓库的主目录名,举例如下:
另一个在其它 Git 教程中常见的命令 git init
,它会把当前所在目录变成一个本地仓库,因为有 GitHub 的存在,这个命令在我们的生产生活中用到的次数应该是零,除非你想费时费力自己搭建服务器。操作截图如下:
2、Git 基础操作
Git 本地仓库有三大区域:工作区、暂存区、版本区。
如下图所示,新建文件后,命令行前缀又发生了一些微小的变化,红色 master
后面出现了 *
星号,这表示工作区或暂存区有变化,对文件进行增删改操作都会出现这个星号,另外使用 git status
命令亦可查看详情。
现在介绍另一个命令 git diff
,它可以用来查看工作区被跟踪的文件的修改详情,此时新建文件 one.txt
并未被跟踪,而已被跟踪的文件 README.md
无修改,所以看不到。注意,只有在版本区中存在的文件才是被跟踪文件。
现在,将工作区的两处修改(新增文件 one.txt,修改文件 README.md)全部添加到暂存区,并使用 git diff --cached 查看暂存区的全部修改:
这两个命令设置你的身份信息如下图。git config -l 可以查看配置信息(就不展示截图了):
上图有三行信息,依次说明:
第一行,开头的星号表示当前所在分支,绿色的 master 是分支名,之所以是绿色,也是因为它是当前所在分支。后面第二项是版本号,第三项中括号里面蓝色的字,表示此分支跟踪的远程分支的名字,当然啦,这也是克隆远程仓库到本地时的默认设置 – 创建 master 分支并自动跟踪远程同名分支;冒号后面黑色文字表示本地分支领先其跟踪的远程分支一个提交。最后一项是提交时填写的备注信息。
第二行,是 Git 指针信息,它指向远程仓库的 master 分支,这行信息暂不重要。
第三行,远程分支信息,详见第一行的解释。
在执行 commit 命令时,再介绍一个我并不推荐的选项 -a
,它的作用是将未添加到暂存区的修改,也就是工作区的修改也一并提交,但会略过未被跟踪的文件,比如新建文件 one.txt,此命令的完整格式:git commit -am xxxxx 。谨慎的做法是按照前文的顺序,修改工作区 - 提交到暂存区 - 随时使用 git status 查看仓库状态 - 将暂存区的修改提交到版本区生成一次新的提交。
可以看到本地仓库的 master 分支与远程仓库的 origin/master 分支在提交版本上有了冲突,又叫做提交时间线分叉。因为刚才的提交操作不是基于远程仓库 origin/master 分支的最新提交版本,而是撤回了一个版本。这种情况下也是可以将本地 master 分支推送到远程仓库的,需要加一个选项 -f ,它是 --force 的简写,这就是强制推送:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)