【笔记】Git使用记录
文章目录
一、相关概念和教程
参考 廖雪峰官网教程

二、常用的命令介绍
1)git安装
1)linux上安装:
sudo apt-get install git
2)Windows安装:
在Windows上使用Git,可以从Git官网直接下载安装程序,然后按默认选项安装即可。
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
2)设置
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
git config --global user.name "your_name"
git config --global user.email "email@mail.com"
3) 创建版本库
1)git init
git init命令可以把当前目录变成git可管理的仓库; 瞬间Git就把仓库建好了,可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见
4)提交
-
git add readme.txt -
git commit -m "message"
git add 暂存文件,将文件的快照放入暂存区域。
git commit 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。更新存档 ;
5) 查看仓库当前的状态
git status
git diff "file_name"
要随时掌握工作区的状态,使用git status命令。
如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
6)查看提交日志
git log
加上 --pretty=oneline 参数 每条记录显示一行,方便查看; 输入由commit_id和message组成;
3f53c420601b5106e552dbf70f3692c264dcda2e 第3次commit
469c11a31c9f792ce49c92780613d852e441fbc8 第3次commit
f78c9ed38184248cb5879d134b057b5bbba27648 第1次commit
7) 查看命令历史
git reflog
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。- 穿梭前,用
git log可以查看提交历史,以便确定要回退到哪个版本。 - 要重返未来,用
git reflog查看命令历史,以便确定要回到未来的哪个版本。
8)版本回退
git reset
git reset --hard HEAD^
Git仓库中,用HEAD表示当前版本,上一个版本为HEAD^; 上上一个版本就是HEAD^^; 也可以写成HEAD~2表示网上回退几个版本;
或者,使用commit_id指定版本;
git reset --hard 3f53
版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
9) 从暂存区回退
git reset是从版本库进行回退,重写工作区文件;
但是我还没commit的话,我只是add的话,版本库就没有修改记录了,修改记录在暂存区里;
git checkout -- file表示从暂存区回退版本到工作区;git reset HEAD <file>表示从版本库提取某个状态到暂存区;
总结:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考8)版本回退,不过前提是没有推送到远程库。
10) 删除文件
1)删除版本库里的文件
git rm file
git commit -m 'message'
小提示:先手动删除文件,然后git add <file>, commit效果是一样的。
2)删错了不用担心,git checkout -- file回退;
12)远程相关
1. 查看本机公钥
一般公钥存放的位置为 ~/.ssh/id_rsa.pub
所以打开你的git bash窗口,cd ~/.ssh; cat id_rsa.pub
如果找不到公钥,可以生成;使用命令 ssh-keygen;接着会提示你存放的路径,默认就可以;按enter键确认,
2. 关联远程库
git remote add <name> <url>
例如:在本地的仓库下,使用命令关联到远程my_tools_libs上;
git remote add my_tools_libs git@gitee.com:ymchen_c/my_tool_libs.git
或者(建议这一种,因为记不住名字)
git remote add origin git@gitee.com:ymchen_c/my_tool_libs.git
3. 解除关联
有时候一种关联(协议)不奏效(公司给你禁了),那换一种好了;看命令;
查看远程库关联情况
git remote -v
4)解除关联
git remote rm
4. 推送
git push --force <远程仓库name> <分支名>
force参数表示强制推送到仓库,覆盖写入,仓库原内容会被删除,只保留推送的内容;
😛
三、远程仓库托管,开发流程;
-
首先在github上建立一个仓库;用readme.md初始化,建完仓库会有一个远程仓库链接;复制下来;
-
然后在本地项目目录下初始化仓库,使用命令
git init命令; -
将初始化的仓库关联到远程仓库;这个时候远程仓库版本和本地版本不一致;
git remote add origin https://gitee.com/ymchen_c/research-report-element-extract.git -
把远程仓库内容拉下来到本地,为了避免冲突;
git pull origin master, 你会发现本地多了readme.md文件 -
添加本地项目其他内容到版本树;
git add .git commit -m 'message';这个版本树是在远程基础上叠加的,所以不会冲突; -
提交这个仓库到远程;
git push origin master
3.1 远程仓库配置总结
git 全局配置
git config --global user.name "张三"
git config --global user.email "zhangsan@email"
创建一个新的仓库
git clone https://gitee.com/ymchen_c/research-report-element-extract.git
cd research-report-element-extract
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
推送现有的文件夹
cd existing_folder
git init
git remote add origin https://gitee.com/ymchen_c/research-report-element-extract.git
git add .
git commit -m "Initial commit"
git push -u origin master
推动一个现有的Git仓库
cd existing_repo
git remote rename origin old-origin
git remote add origin https://gitee.com/ymchen_c/research-report-element-extract.git
git push -u origin --all
git push -u origin --tags
🍂
979

被折叠的 条评论
为什么被折叠?



