git日常使用

lr 于 2020-12-15 发布
git add    把文件添加到暂存区
git commit 把暂存区的所有内容提交到当前分支上
git push   把当前分支的修改推送到远程分支
git pull   把远程分支的修改下拉到当前分支
git status 查看当前分支状态
git log    查看当前分支状态提交日志
git diff <文件名> 查看指定文件修改内容
# 用户标识
git config --global user.name cooolr
git config --global user.email i@lr.cool

# 初始化仓库
git init

# 创建测试文件lr.txt
echo 'hello world'> lr.txt

# 添加进暂存区
git add lr.txt

# 提交到仓库
git commit -m "提交"
# 本地关联远程仓库
git remote add origin https://github.com/xxxxx/xxxxx

# 克隆远程仓库
git clone https://github.com/xxxxx/xxxxx

# 推送本地修改到远程仓库
git push origin master

# 本地拉取远程命令
git pull origin

# SSH keys(使用SSH公钥认证, 推送远程分支无需输入密码)
SSH公钥路径: 
    linux: ~/.ssh/id_rsa.pub
    windows: C:/Users/<用户名>/.ssh/id_rsa.pub
如果没有需要运行命令创建: ssh-keygen

复制id_rsa.pub公钥内容到git账号设置新加SSH keys即可
# git add 后的修改撤销不了

# 撤销单个文件修改
git checkout -- lr.txt

# 撤销所有文件修改
git checkout -- .
# 查看要回退的版本id
git log

# 回退本地版本
 git reset --hard d4f213fc242e574130dcc2fac2db3bc4df304288

# 回退远程版本[强制推送到远程版本]
git push -f

Git-分支的新建与合并

实际项目中如何使用Git做分支管理

# 建立分支
git branch <分支名>

# 切换分支
git checkout <分支名>

# 合并分支
git pull origin master  # dev
git checkout master     # dev
git merge <dev分支名>    # master

# 删除分支
git branch -d <分支名>

# 推送分支到远程仓库
git push origin <分支名>

# 删除远程分支
git push origin -d <分支名>
# 1. 克隆主仓库代码
git clone ssh://192.168.1.100:29418/tnaot_data/algorithm.git

# 2. 添加新的git项目作为远程仓库
git remote add other ssh://liyr@192.168.1.158:29418/algorithm.git

# 3. 拉取新添加的git项目数据
git fetch other

# 4. 将新添加的git项目master分支作为新分支checkout到本地
git checkout -b other other/master

# 5. 切换回主仓库master
git checkout master

# 6. 将新分支合并到主仓库master分支
git merge other --allow-unrelated-histories

# 7. 提交更新并推送到远程分支
git add .
git commit -m "merge other"
git push origin master

利用合并多个git项目的方法,将新项目添加到旧项目的remote地址,再切换到新项目分支,然后删除旧项目remote并且rename新项目remote为origin,即可在旧项目路径运行新项目,无缝切换。

# 1. 把新项目添加到旧项目的remote地址
git remote add other ssh://liyr@192.168.1.158:29418/algorithm.git

# 2. 拉取新项目代码
git fetch other

# 3. 切换到新项目分支
git checkout other/master

# 4. 删除旧项目remote
git remote remove origin

# 5. 重命名新项目remote
git remote rename other origin