如何使用git
//原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/git/git-quick-start.html#article-start
安装git客户端后,右键会看到一个Git Bash
, 打开
获取git remote仓库
1)克隆现有的仓库
git clone http://git.oschina.net/yiibai/git-start.git
此命令会在当前目录创建git-start
目录,并且目录中会有一个.git
目录,从remote中拉下来的所有数据都在.git
目录中
如果在clone
remote
的时候自定义创建的文件名字,可以这样操作
git clone http://git.oschina.net/yiibai/git-start.git mygit_start
2)在现有目录中初始化仓库
如果不克隆现有的仓库,而是打算使用Git
来对现有的项目进行管理,假设有一个项目的目录是:E:\.temp
,只需要进入该项目的目录并输入:
git init
该命令会创建一个.git
的子目录,这个子目录会含有初始化的Git仓库中所有的必须文件,这些文件是Git仓库的骨干。
如果是在一个已经存在文件的文件夹(而不是空文件夹)中初始化 Git 仓库来进行版本控制的话,应该开始跟踪这些文件并提交。可通过 git add
命令来实现对指定文件的跟踪,然后执行 git commit
提交,假设在目录 F:\worksp\git-start.git
中有一些代码需要跟踪(版本控制),比如有一个 Python 代码文件叫作:hello.py 内容如下:
#!/usr/bin/python3
#coding=utf-8
print('This is my first Python Programming')
可以通过git add
命令进行追踪
git add hello.py
git commit -m '第一次提交'
检查当前文件的状态
git status
此时在.git
所在的目录下新建一个文件,git status
就会看到如下的提示。当前文件处于untracked files
下面,表示未追踪吗,即之前的快照(提交中)没有这些文件.除非告诉git
我要追踪(git add) ,否则git
不会自动纳入追踪范围
如果把文件删除,就没有任何提示
追踪新文件
git add
开始追踪一个文件,
git add aa.txt
git status
只要是在 changes to be commited
这行下面,就表示是已暂存状态
暂存已修改文件
如果,一个文件已经被追踪(git add xxx.txt) ,此时打开文件进行修改,在通过git status
就会发现如下
该文件出现在changes not staged for commit
下,说明已跟踪的文件内容发生了变化,但是还没有放到暂存区,需要运行git add
命令,这个命令也可以表示为"添加内容到下一次提交中"
忽略文件
一般我们总会有一些文件无需纳Git
的管理范围中,也不希望他们总是出现在未追踪的列表中,此时,可以创建一个.gitignore
的文件,列出要忽略的文件
此时有三个文件在untracked files
列表,我们需要忽略b.txt c.txt
如下操作
# .gitignore
b.txt
c.txt
此时会发现,那两个文件已经不存在未追踪列表了
.gitignore
的格式规范如下:
- 所有空行或者以
#
开头的行都会被 Git 忽略。 - 可以使用标准的
glob
模式匹配。 - 匹配模式可以以(
/
)开头防止递归。 - 匹配模式可以以(
/
)结尾指定目录。 - 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(
!
)取反。
查看已暂存和未暂存的修改
git status
输出文件状态,那如何查看文件进行了哪些修改? 可以使用git diff
命令。
修改a1.txt
文件,执行git status
会出现如下
使用git diff
, 可以看到尚未暂存的文件更新了哪些部分,不加参数直接使用
提交更新
在提交之前,一定要使用git status
查看文件状态,防止最新的修改信息没有追踪到
git status
git commit
如果每次都使用git add xxx
进行追踪太麻烦,可以使用 git commit -a
这个命令可以跳过暂存区,自动把所有文件追踪并提交
移除文件
1、直接通过rm
命令删除文件,如果还没有存放在暂存区,git status
不会显示 Changes not staged for commit
,同时本地文件会删除
2、如果删除的文件已经在暂存区了,此时会出现在Changes no staged for commit
,使用 git rm -f xxx
,进行强制删除
{{uploading-image-869820.png(uploading...)}}
撤销操作
在任何一个阶段,如果想撤销操作,有对应的指令
比如在我们提交之后才发现漏了几个文件,或者提交信息写错了,此时用过运行 带有--amend
的 命令尝试重新提交
# 第一次发起提交
git commit -m 'initial commit'
# 发现文件忘记暂存了,git add进行追踪
git add forgotten_file
# 判断上一次提交后有没有改动,如果没有则使用上一次的提交,否则使用本次提交代替上一次
git commit --amend
取消暂存的文件
演示如何操作暂存区域与工作目录中已修改的文件。 这些命令在修改文件状态的同时,也会提示如何撤消操作。 例如,你已经修改了两个文件并且想要将它们作为两次独立的修改提交,但是却意外地输入了 git add *
暂存了它们两个。 如何只取消暂存两个中的一个呢? git status
命令提示:
撤消对文件的修改
6 远程仓库的使用
前面所有讲解的内容都是一个人“自娱自乐”, Git这东西自己玩也没有多大意思,没有发挥出来Git最牛逼的地方。要使用Git在项目上多人协作那才有意思。
为了能在任意 Git 项目上协作,需要知道如何管理自己的远程仓库(remote repository)。远程仓库是指托管在因特网或其他网络中的你的项目的版本库。可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写。 与他人协作涉及管理远程仓库以及根据需要推送或拉取数据。 管理远程仓库包括了解如何添加远程仓库、移除无效的远程仓库、管理不同的远程分支并定义它们是否被跟踪等等。 在本节中,我们将介绍一部分远程管理的技能。
6.1 查看远程仓库
如果想查看已经配置的远程仓库,可以运行git remote
命令,它会列出你指定的每一个远程服务器的简写,如果已经克隆了自己的仓库。那么至少应该能看到origin
这是Git
给你克隆的服务器的默认名字
git clone http://git.oschina.net/yiibai/git-start.git #克隆远程仓库
cd git-start # 进入目录
git remote # 查看配置的远程仓库
也可以指定选项 -v
,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL。
git remote -v
origin http://git.oschina.net/yiibai/git-start.git (fetch)
origin http://git.oschina.net/yiibai/git-start.git (push)
6.2 添加远程仓库
git remote
origin # clone服务器时的默认名字
# 添加远程
# gs: 自定义一个简写
git remote add gs http://git.oschina.net/yiibai/git-start.git
git remote -v
gs http://git.oschina.net/yiibai/git-start.git (fetch)
gs http://git.oschina.net/yiibai/git-start.git (push)
origin http://git.oschina.net/yiibai/git-start.git (fetch)
origin http://git.oschina.net/yiibai/git-start.git (push)
![image-20210910103757155](C:\Users\Xue Jian\AppData\Roaming\Typora\typora-user-images\image-20210910103757155.png)
现在就可以在命令行中使用过字符串gs
来代替整个url
,列如,如果想拉取仓库中有,但是你没有的信息,可以运行git fetch gs
git fetch gs
From http://git.oschina.net/yiibai/git-start
* [new branch] master -> gs/master
现在 master
分支可以在本地通过gs/master
访问到,
可以将其合并到自己的某个分支中,或者如果想要查看它,可以检出一个指向该点的本地分支。
6.3从远程仓库中拉取
从远程仓库中获取数据,可以执行:
git fetch [remote-name]
这个命令会访问远程仓库,从中拉取所有还没有的数据。执行完成后,将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。
如果使用 clone
命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin
” 为简写。
所以,git fetch origin
会抓取克隆(或上一次抓取)后新推送的所有工作。 必须注意 git fetch
命令会将数据拉取到本地仓库 - 它并不会自动合并或修改当前的工作。 当准备好时必须手动将其合并入你的工作区。
如果你有一个分支设置为跟踪一个远程分支,可以使用 git pull
命令来自动的抓取然后合并远程分支到当前分支。 这对你来说可能是一个更简单或更舒服的工作流程;默认情况下,git clone
命令会自动设置本地 master
分支跟踪克隆的远程仓库的 master
分支(或不管是什么名字的默认分支)。 运行 git pull
通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。
6.4 推送到远程仓库
当想要分享你的项目时。必须将其推送到上游。整个命令很简单:git push [remote-name][branch-name]
。
当想要将master
分支推送到origin
服务器时(再次说明:克隆时通常会自动帮你设置好那两个名字)。运行整个命令就可以将所作的备份到服务器:
git push origin master
只有当你有所克隆服务器的写入权限,并且之前没有人推送过时,这条命令才能生效。 当你和其他人在同一时间克隆,他们先推送到上游然后你再推送到上游,你的推送就会毫无疑问地被拒绝。 你必须先将他们的工作拉取下来并将其合并进你的工作后才能推送。
6.5查看远程仓库
如果想要查看某个远程仓库的更多信息,可以使用git remote show [remote-name]
命令,如果想以一个特定的缩写名运行整个命令。列如:origin
,会得到如下信息:
git remote show origin
它同样会列出远程仓库的 URL 与跟踪分支的信息。 这些信息非常有用,它告诉你正处于 master
分支,并且如果运行 git pull
,就会抓取所有的远程引用,然后将远程 master
分支合并到本地 master
分支。 它也会列出拉取到的所有远程引用。
6.6 远程仓库的移除与重命名
如果想要重命名引用的名字可以运行 git remote rename
去修改一个远程仓库的简写名。列如,想把gs
重命名为news
,可以运行
git remote rename gs news
git remote
origin
news
值得注意的是这同样也会修改你的远程分支名字。 那些过去引用 gs/master
的现在会引用 newgs/master
。
如果因为一些原因想要移除一个远程仓库 - 你已经从服务器上搬走了或不再想使用某一个特定的镜像了,又或者某一个贡献者不再贡献了 - 可以使用 git remote rm
:
git remote rm news
git remote
origin
标签:文件,git,remote,入门,仓库,start,Git,快速,远程
From: https://www.cnblogs.com/xuejian123/p/17204323.html