Git和Github初学笔记 (一)

发布于 2021-07-10  34 次阅读


该篇文章csdn网址:https://blog.csdn.net/LLLLQZ/article/details/107164059

最基本的指令
git status查看状态
git add +文件 把文件从工作区转到暂存区
git commit-m"提交描述" 把暂存区文件转到git仓库
查看初始化后信息 git config --list
pwd是显示当前的文件目录 ls查看当前文件
git version是查看git的版本
每次都要先git status查看一下状态

对于工作树,暂存区,HEAD不过多做笔记,对设置SSH key在笔记二中再续写

一、初始化以及仓库创建和操作:

1、基本信息设置:
设置用户名:git config --global user.name 'github用户名'
设置用户名邮箱:git config --global user.email '邮箱'
查看初始化后信息 git config --list
2、初始化一个新的git仓库
a、创建文件夹:自己手动右键WF(其实快捷键也没必要 )创建
或者 mkdir test(test是文件夹名字)
b、在文件内初始化git(创建一个git仓库)
cd test(change directory test意思是切换到test这个文件夹)
git init 会在test下生成隐藏文件.git
3、向仓库添加文件
A、创建文件:touch 文件名.后缀
比如:touch a1.php touch a1.c
B、然后查看
git status
C、如果是红色则添加到暂存区
git add a1.c(git add -all 表示添加全部)
D、再查看
git status如果成功了应该是绿色
E、上传到git库
git commit -m '描述说明'
可以直接使用git commit 记述详细提交信息,退出方式跟vim一样
第一行:用一行文字简述提交的更改内容 第二行:空行 第三行:记述更改的原因和详细内容

如果提交完后发现想改动可以使用git commit -amend(修改上一条提交信息)
退出方式跟vim一样

F、查看状态
git status
如果正确,应该是nothing to commit,working directory clean(working tree clean)
4、修改仓库文件
修改用:vi a1.c
==首先是按i由命令行模式换成插入模式
插入完文本后保存需要esc切换模式输入 :wq后回车,记住:冒号不能省略!!!==
查看:cat a1.c
(上述也可以直接对着文件来右键选择打开方式然后选对应软件打开)
然后git status查看状态会发现修改过的文件是红色的
需要git add a1.c再查看状态git status发现就变绿色了,说明添加到暂存区了
再像之前一样提交到本地git仓库

5、删除文件
a,删除文件
一种方法:右键删除
还有一种 rm -rf a1.c**千万注意rm后面有个空格
b,从git删除文件

git rm a1.c

c,提交操作
git commit -m '描述操作说明'
6、git管理远程仓库
目的:作用是备份,实现代码的集中化管理

7,提交git库
先建立远程仓库,与本地库同名例如“test”
然后git remote add添加远程仓库
例如:git remote add origin git@github.com:用户名/库名称.git
然后git push就可以把当前分支内容推送给远程仓库
git push -u origin master这样就把master分支推送给远程仓库了

git pull 获取最新的远程仓库分支 例如git pull origin feature-D

仓库地址在哪:在github项目右上角,或者直接网址复制加一个.git 后在本地进行个人修改后可以发送回远程主机上

二、其他相关git操作

git clone 仓库地址(从远程主机克隆一个版本库)
把远程仓库clone到本地仓库同步
git branch看自己在哪个分支,* 表示当前分支
master的话自己是主要的那个
git checkout -b创建、切换分支
例如:git checkout -b feature-A
或者可以:git branch feature-A 再:git checkout feature-A
切换分支办法 git checkout feature-A 表示切换回feature-A分支,还有git checkout - 表示切换回上一分支(==即用 - 代替分支名==)

git merge 分支合并
1、首先切换回master分支

git checkout master

2、然后合并特性分支 例如feature-A

git merge --no-ff feature-A

为了在历史记录明确记录本次分支合并,我们需要创建合并并提交,因此在合并时加上--no-ff参数

git log相关
git log查看提交日志(只能查看以当前状态为终点的历史日志)
退出git log只要按下Q就可
git log --pretty=short 只显示提交信息的第一行
git log a1.cpp 表示只显示指定目录的日志
git log -p 显示文件的改动
git log a1.cpp -p 显示指定文件的日志改动
git log --graph以图表形式查看分支
查看==帮助文档==的方法

git log --help

git diff相关
git diff 查看更改前后的差别,可以查看工作树,暂存区和最新提交之间的差别
git diff head 查看上次改动差别

其他
git reset 回溯历史版本
git reset --hard 哈希值(==注意:哈希值输入四位以上就可以执行!!!==)
例如git reset --hard e4f1a6101bee32f9e99d463e04e79367738416c7
需要当时时间点的哈希值,在git log查看日志时,commit右边就是这个提交的哈希值

git reflog 查看当前仓库执行过的操作的日志,包括回溯的操作,所以可以利用这个命令恢复到原先状态
显示操作前面代表哈希值

git rebase -i 压缩历史
当你修改一些不是很重要的内容时,不希望再提交日志里看到这些提交(比如一些拼写错误)
可以把这些提交和上一次提交合并

git rebase -i HEAD~2

==之后把要被合并的不重要提交的pick改为fixup==

使用git commit -am可以省略使用git add命令将已跟踪文件放到暂存区的功能
这个往往是你已经提交过文件被你修改过后时使用,因为此时这个文件已经被tracked,但是你还是不能直接git commit -m得先git add,所以使用这个git commit -am可以省略中间这步add

三、可能会遇到的问题

1.没有权限 The requested URL returned error:402 Forbidden while accessing
答案:私有项目没有权限,得输入用户名密码,或者远程地址采取这种类型
vi.git/config
将[remote "origin"]
url = https://github.com/用户名/仓库名.git

修改为[remote "origin"]
url = https://用户名:密码@github.com/用户名/仓库名.git

git push -u origin master 上面命令将本地的master分支推送到origin主机,
同时指定origin为默认主机,后面就可以不加任何参数使用git push了。
git push,默认只推送当前分支,这叫做simple方式。
此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。
Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。