不用Git的是sb,还好我已经开始用了,就在今天早上的时候。没有人比我更懂git。
1)我要一个分支,分支进行另外的一个功能进行调试。b是branch(分支)的首字母 rtmps_test_aac是新分支的名称
git checkout -b rtmps_test_aac
等价于 git branch rtmps_test_aac (创建分支) + git checkout rtmps_test_aac(切换至该分支)
git branch -a 我们使用这个命令查看我们所有的分支,用 * 标记着当前的分支。如果我想要切换分支只需要git checkout
分支名,就可以了。
2)重大发现,好像git 这些命令只能在有.git或者有.get的底层目录进行。不知道对不对,先总结了再说
3)我发现在Ubuntu的共享目录下,不能使用git clone 和git push, pull。
如何避免多次输入密码 如何避免多次输入密码
Command line instructions
You can also upload existing files from your computer using the instructions below.
Git global setup
git config --global user.name "yangpan@tenbay"
git config --global user.email "1808179764@qq.com"
Create a new repository
git clone git@gitlab.com:mumianbaba/world.git
cd world
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Push an existing folder
cd existing_folder
git init
git remote add origin git@gitlab.com:mumianbaba/world.git
git add .
git commit -m "Initial commit"
git push -u origin master
Push an existing Git repository
cd existing_repo
git remote rename origin old-origin
git remote add origin git@gitlab.com:mumianbaba/world.git
git push -u origin --all
git push -u origin --tags
二)基础概念
1) .git 这个东东叫 Repository,这个记录着很多东西。没有这个git 很多命令都用不了,因为很多git命令就是在操作.git文件。
2)怎么搞出一个 .git 呢?
git init 或者git clone 网址。
3)git怎么知道什么文件需要它来管理呢?
Untracked files:就表示没有纳入管理的文件
tracked files:就表示对应的文件的变化都会由git来记录管理
4)怎么把一个不受git管理的文件,让git来管理呢?
a)该文件在.git的同级或子级目录下 (否则报错:fatal: ../yp: '../yp' is outside repository)
b)git add filename
这样就将filename这个文件托付给git管理了。git add . 将所有的untracked files都托付给git管理,记得是所有,子目录的也会哦。
注意:文件夹既不是Untracked files也不是tracked file,不能被添加。
5)git可以记录什么的变化呢?
文件的内容增删改, 文件本身的增删,已经文件权限的改变。这些git都会记录在案。
6)查询git的状态,因为谁都记不住自己干过些什么事。
git status
状态打印格式有3部分
i)分支信息
ii)以提交(commit)为基准的被追踪的文件处于什么阶段信息
iii)是否有新的未追踪的文件信息
a)git status的分支信息
On branch master
On branch branch01
b)以提交(commit)为基准的被追踪的文件处于什么阶段信息
这个信息告诉你你干了些什么,到达commit(终极阶段)还需要干什么。
下面status告诉我们只是有一个没有追踪的文件。提示你如果想要commit那么就要使用git add <file>
git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
readme.txt
下面status告诉我们有一个Changes(new file)可以commit了;如果你想回头就直接git reset HEAD <file>。注意了add和reset的一对相反的动作,add是将工作区的Changes发送至staged(缓存区),这个reset是将staged中的Changes回退到工作区。所以搞工作区的都有可能丢失现有的改动。
git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: newfile
下面的status告诉我们,有一个Changes(modified),如果你想要commit,你需要到达staged(缓存区),然后才能commit。
怎么到达缓存区呢?git add <file> 将Changes送到缓存区,git checkout -- <file>,抹掉Changes,以staged或repository中的 newfile来恢复工作区的newfile。优先staged,当staged没有就去repository找(就是使用最后一次的add 或 commit的记录,来回退工作区,直接抹掉现有的Changes)。
Changes到达staged(缓存区)后就可以commit了
git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: newfile
no changes added to commit (use "git add" and/or "git commit -a")
下面的status告诉我们,离commit没有什么要做的了,可以直接commit了;想要回退使用git reset HEAD <file>
git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: newfile