使用Git的大忌:
- 没什么有价值的修改就提交,也就是没有意义的提交
- 提交到别人的分支
- 提交的代码又引入了新的更严重更明显的bug,也就是不如不提交。比第一条更严重,让别人也无法合并
git init
常常之后,出现下面结果1
2
3
4
5
6
7
8
9提示:使用 'master' 作为初始分支的名称。这个默认分支名称可能会更改。要在新仓库中
提示:配置使用初始分支名,并消除这条警告,请执行:
提示:
提示: git config --global init.defaultBranch <名称>
提示:
提示:除了 'master' 之外,通常选定的名字有 'main'、'trunk' 和 'development'。
提示:可以通过以下命令重命名刚创建的分支:
提示:
提示: git branch -m <name>
可以对分支改名。此时使用git branch
无法查看分支,因为还没有任何操作。
在本地建立仓库到push的过程:
1 | git init |
提交会附带消息和一个哈希值,哈希值是一串包含数字和字母的随机序列。
单独 push 某文件
1 | git commit test.cpp |
Commit message 使用的 emoji
初次提交示例:1
git commit -m ":tada: Initialize Repo"
🆕 (全新) :new: 引入新功能
(闪电) :zap: 提升性能
🔖 (书签) :bookmark: 发行/版本标签
🐛 (bug) :bug: 修复 bug
(急救车) :ambulance: 重要补丁
(扳手) :wrench: 修改配置文件
(加号) :heavy_plus_sign: 增加一个依赖
➖ (减号) :heavy_minus_sign: 减少一个依赖
(备忘录) :memo: 撰写文档
(锤子) :hammer: 重大重构
🔥 (火焰) :fire: 移除代码或文件
撤销对文件的修改
对 test.cpp
修改后,打算返回上次提交的状态,使用命令:1
git checkout -- qclipper.cpp
如果要撤销 所有文件 的修改,命令为:1
git checkout -f
git diff ReadMe.mdown
表示在commit之前查看文件修改哪些地方, 在commit之后使用此命令无效。
撤销 commit 的多种方法
那么在执行完 commit 之后,想撤回 commit
1 | git reset --soft HEAD^ |
HEAD^
意思是上一个版本,也可以写成 HEAD~1
。如果进行了 2 次 commit,都想撤回,可以使用 HEAD~2
撤销 commit、并撤销 git add 操作、不撤销修改代码
1 | git reset --mixed HEAD^ |
1 | git reset HEAD^ |
以上操作将把HEAD
指针移动到父提交,但不会改变工作目录中的文件,修改将被保留。
撤销 commit、不撤销git add .
soft
1 | git reset --soft HEAD^ |
撤销 commit、撤销 git add . 操作、撤销修改代码
hard
1 | git reset --hard HEAD^ |
- 这个命令将
HEAD
指针移动到当前提交的父提交,并且使用--hard
选项会使工作目录中的文件恢复到这个父提交的状态; - 这意味着所有自上次提交以来的未提交的修改都将被删除;
- 如果想保留这些修改,可以使用
git stash
命令来保存它们,然后在需要的时候再应用这些修改。
免密码 push的方法
- 使用文件创建用户名和密码
文件创建在用户主目录下:
1 | touch .git-credentials |
记得在真正输入的时候是没有大括号的。
- 添加 git config 内容
git config --global credential.helper store
执行此命令后,用户主目录下的.gitconfig 文件会多了一项:[credential]
helper = store
重新 git push 就不需要用户名密码了。
重命名文件
1 | git mv file.cpp new_file.cpp |
修改commit message
上一次的message如果需要修改,使用:git commit --amend
如果上一次的commit已经push了,那么需要强制提交 git push -f origin master
gitignore
gitignore
在本地仓库的根目录,执行文件屏蔽 屏蔽规则