目录

.gitignore内的语法规则

git已经跟踪过某个文件,现在不想跟踪了

常见配置

git的名词解释

git命令:clone/fetch/pull之间的区别是什么?


http模式,让 Git 自己记住密码——配置凭证存储(Credential Helper)

如果你觉得配置 SSH 有点麻烦,或者公司环境限制只能用 HTTPS,那么你可以通过修改 Git 的全局配置,让它帮你记住密码。

只需在项目目录下执行这一条简单的命令:

git config --global credential.helper store

执行完这条命令后,你再进行一次 git pull并输入一次账号密码。之后,Git 就会把你的凭证以明文形式保存在你的电脑上(通常位于 ~/.git-credentials),以后就再也不需要你手动输入了。

(注:如果你是 Windows 或 Mac 用户,也可以将 store替换为系统原生的密码管理器,如 manager-coreosxkeychain,这样密码会以加密形式存储,安全性更高。)


.gitignore内的语法规则


1. 以 #开头的行是注释
2. 通配符*:匹配任意数量(包括零个)的任意字符,但不能匹配斜杠 /(也就是不能跨目录)。*.log
3. 通配符?:只匹配单个任意字符。debug?.log
4. 通配符[]:匹配方括号内的任意一个字符,支持用短横线 -指定范围(如 [0-9]或 [a-z])。log[0-9].txt
5. 斜杠是区分“文件”和“文件夹”,以及限定“搜索范围”的关键。
6. **:匹配任意数量的中间目录。foo/**/*.html
7. !:否定(取反)。如果前面的规则忽略了一类文件,用它可以“捞回”特定的文件。但要注意一个死规定:如果文件的父目录被忽略了,它是绝对没法被重新捞回来的。

git已经跟踪过某个文件,现在不想跟踪了


# 1. 从 Git 暂存区/版本库中移除跟踪(但神奇地保留物理文件)
git rm --cached <文件名>

# 如果是文件夹,加上 -r 参数
git rm -r --cached <文件夹名>

# 提交这次变更
git commit -m "停止跟踪 config.ini"

常见配置

# 配置基础环境
git init
git config --global user.name  "lidage"
git config --global user.email "1111@qq.com"
git config --list
# 产生SSH KEY
ssh-keygen -t rsa -C "1111@qq.com"
# 测试连接是否ok  Hi username! You've successfully authenticated, but GitHub does not # provide shell access.
ssh -T git@github.com
# 关联远端remote 库
git remote add origin https://github.com/2222/gittest.git
git remote add origin git@github.com:2222/gittest.git

# 提交到暂存区暂存区stage|index
git add readme.txt
# 提交到repository
git commit -m "增加111"
# 比较local 与stage 的某个文件差异
git diff readme.txt
# 显示log 和版本号
git log
git reflog
# -------------------------------------------------------
# 回退上个版本----回退是会刷新stage 和local
git reset --hard HEAD^
# 回退到前100个版本
git reset --hard HEAD~100
# 回退到指定版本号的版本
git reset --hard cd7dd89
# 从暂存区stage|index恢复文件----只刷新local
git checkout -- readme.txt
# ---------------------------------------------------------
# 从local删除某个文件
rm b.txt
# 从暂存区删除某个文件
git rm b.txt
#从repository删除某个文件
git rm b.txt
git commit -m "rm a.txt"
# ---------------------------------------------------------
# 本地master分支推送到远端remote 仓库  -u在第一次使用,建立关联,以后不用-u
git push -u origin  master
git remote -v
git remote rm  origin
# 远端到本地
git clone  git@github.com:2222/gittest.git
# 创建新分支dev,并转到dev分支
git checkout -b dev
等价于下面两条
git branch dev
git checkout dev
# 显示所有分支
git branch
# 切到master
git checkout master
# git merge命令用于合并指定分支到当前分支上
git merge dev
# 删除分支
git checkout -d dev
# 当mater和dev分支都修改了,需要手动改动文件已合入

# 添加当前目录下的所有文件到暂存区:   
git add .

git的名词解释

Fork的工作原理,即服务器端复制原仓库到用户账户,形成独立仓库,用户可以在不影响原仓库的情况下进行修改,并通过Pull Request请求合并。
Fork 在你的账户下创建独立仓库副本
Clone将仓库下载到本地(通过 git clone)
Git的核心部分是一个简单的键?值对数据库。我们可以向该数据库插入任意类型的内容,它会返回一个键值,通过该键值,我们可以在任意时刻再次检索该内容。
我们之前使用add、commit、rm、mv等命令时,实际上是在向Git这个数据库读取/添加数据。

work dir :工作目录/工作区/工作空间
index stage : 暂存区
HEAD:指向最后一次提交


git命令:clone/fetch/pull之间的区别是什么?


    git clone  首次获取项目或备份---创建新仓库(含完整历史)
        本地空目录 → 下载远程仓库完整数据 → 生成本地仓库(含 .git)
    git fetch  检查远程更新但不合并--不修改本地工作区或分支
        本地仓库 → 连接远程 → 下载远程分支的更新 → 存储到 .git/refs/remotes/
    git pull   等价于 fetch + merge  直接更新本地工作区
        本地仓库 → 连接远程 → 下载远程分支更新 → 自动合并到当前分支 
git命令:checkout的作用
    用于切换分支、恢复文件版本等操作

Rebase:线性化历史,适合本地未共享分支。
Merge:保留分支合并记录,适合公开分支。

git  

origin是克隆的远程仓库的缩写,用来代替原始URL。
HEAD指向当前检出的分支的最新提交
 

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐