Git的简单使用

新建仓库

git init

或者导入远程仓库

git clone "url xxx"

配置仓库

git config --global user.name leo
git config --global user.email leo@github.com

修改远程仓库url

git remote set-url xxxx

常规命令


git log // 查看提交记录 git status // 查看本地文件修改状态 git status -s // 查看本地文件修改状态 git add 文件名 // 添加文件到“暂存区” git add . // 添加所有文件到“暂存区” git commit 文件名称 // 提交部分文件 git commit -am "描述" // 提交所有文件,并添加描述 git push origin 分支名 // 提交到远程分支 git pull origin 分支名 // 从远程分支拉去代码 git checkout 分支名 // 切换分支 git checkout . // 清除本地修改 git checkout 文件名 // 清除文件的本地修改 git branch // 查看分支 git branch 分支名 // 创建分支 git checkout -b 分支名 // 创建并切换到分支 git branch -d 分支名 // 删除本地分支 git push origin -d 分支名 // 删除远程分支 git diff 文件名 // 查看文件修改 git ls-remote // 查看仓库地址,及分支和tag

回退版本

# 已经提交

// 回滚某一个提交(不是回滚“到”某一个)
git revert 版本号           // 用新提交来消除一个历史提交所做的任何修改
git revert --abort          // 错误时中止回滚

// 重置到“某”一个提交
git reset --hard 版本号
git push -f origin branch

# 未提交(未commit)
git checkout .              // 放弃本地修改
git checkout 文件名         // 放弃本地文件部分文件修改
git reset -—hard HEAD       // 回退到上一次提交的版,放弃本地修改

# 未提交(已commit)
git reset HEAD^             // 回到上一次未commit状态(文件修改还在)
git reset --hard HEAD^      // —hard代表强制重置,返回上一个版本
git reset —-hard 版本号     // 重置到指定版本

#从暂存区恢复文件(文件夹)
git reset HEAD              // 恢复所有文件
git reset HEAD xxx/         // 恢复部分文件


标签管理

git tag -a v1.0.0 -m “v1.0.0版本”       // 添加tag

git tag -d v1.0.0                       // 删除tag

git tag                                 // 查看tag

git push origin v1.0.0                  // 提交tag

git pull --tag                          // 拉取tag

git show v1.0.0                         // 显示tag信息


合并代码


1. fast-forward方式, 是当条件允许的时候,git直接把HEAD指针指向合并分支的头,完成合并。属于“快进方式”,不过这种情况如果删除分支,则会丢失分支信息。因为在这个过程中没有创建commit git merge dev 2. --no-ff:不使用fast-forward方式合并,保留分支的commit历史 git merge --no-ff dev 3. --squash:使用squash方式合并,把多次分支commit历史压缩为一次 git merge --squash dev 4. 合并另一分支部分文件, 如想合并 dev 的 test 文件夹 git checkout dev test

分支重命名

a. 本地分支重命名

git branch -m oldbranchname newbranchname

b. 远程分支重命名 (假设本地分支和远程对应分支名称相同)

1. 重命名远程分支对应的本地分支
git branch -m oldbranchname newbranchname

2. 删除远程分支
git push origin :oldbranchname

3. 上传新命名的本地分支
git push origin newbranchname