Open hzzzzzzzq opened 2 years ago
可以在自己目录下创建一个新的 git 仓库,也可以从远端服务器克隆一个仓库到本地。
git init
# name 表示 新建目录名 git init [name]
# url - 拷贝仓库的地址 git clone url
就是将你有改动的文件,添加或删除到本地的暂存区。
# filename - 文件位置 # 添加文件 git add [filename] [filename] ... # 添加指定目录到暂存区 git add [dir] # 添加所有文件到暂存区 git add .
# 删除文件 git rm [filename] [filename] ...
提交就是将代码提交到本地仓库区,并不会直接提交到远端服务器。提交代码也是推送的前提,有提交才会有推送。
# 提交暂存区到仓库区 git commit -m "代码提交信息" # 提交暂存区的指定文件 git commit [filename] [filename] ... -m "代码提交信息" # 用新的 commit 替换上一次提交 # 如果内容无任何变化,用来改写上一次 commit 的提交信息 git commit --amend -m "新提交信息"
推送,就是用来,将你的本地代码推送到远端服务器,在远端保存。
# branch - 想推送的分支 git push [origin] [branch]
分支是用来将特性开发绝缘开来。在创建一个仓库的时候, master 是默认的分支,我们可以作为主分支,在其他分支上完成相对应的功能后,再将分支合并到主分支 master 上。可以有效的对项目进行管理,降低出错概率。
master
# 创建一个叫做 ‘feat-new’ 的分支,并切换过去 git checkout -b feat-new # 切换回主分支 git checkout master # 删除新建分支 git branch -d feat-new # 推送本地创建的分支到远端仓库,让他人可见 git push origin feat-new
更新本地仓库,以及将本地数据合并到 master ,获取 (fetch) 并合并 (merge) 远端的改动。
fetch
merge
# 更新本地代码 git pull # 合并其他分支到当前分支 git merge [branch]
当然,不是每一次的合并都是顺利的,可能会出现冲突,这时候,就需要手动去修改冲突文件并合并冲突。
# 添加 冲突文件,标记为合并成功 git add [filename] [filename] ... # 合并之前,可以使用该命令预览差异 git diff [source_branch] [target_branch]
在开发过程中,是需要标签的,来标记软件发布情况。
# 打标签 # tagID 是标记的提交ID,需要具有唯一性。 git tag 1.0.0 [tagID] # 获取提交 ID,查看本地仓库的历史记录 git log # 可以添加参数来修改输出 # 只看某个人的记录 git log --author=hzzzzzzzq # 每条提交记录只占一行的输出(压缩之后 git log --pretty=oneline # 查看哪些文件有变动 git log --name-status # 如果这些不够使用,可以查看更多的 git log 信息 git log --help
有时候,可能在 commit 时,发现有错误,或者在 push 时,发现 commit log 信息错误,不允许提交(当然这是在公司项目配置的情况下才会发生),我们就需要对提交进行回退,去修改错误或者修改 commit log 信息。
commit
push
commit log
当然,还有命令时是用于版本回退的。
# 回退信息 - 回退一次,数字表示回退次数 git reset HEAD~1 # 获取服务器上最新的版本历史,并让本地分支指向它 git fetch origin git reset --hard origin/master
git 常用命令
新建代码库
可以在自己目录下创建一个新的 git 仓库,也可以从远端服务器克隆一个仓库到本地。
添加和删除文件
就是将你有改动的文件,添加或删除到本地的暂存区。
代码提交
提交就是将代码提交到本地仓库区,并不会直接提交到远端服务器。提交代码也是推送的前提,有提交才会有推送。
推送改动
推送,就是用来,将你的本地代码推送到远端服务器,在远端保存。
分支
分支是用来将特性开发绝缘开来。在创建一个仓库的时候,
master
是默认的分支,我们可以作为主分支,在其他分支上完成相对应的功能后,再将分支合并到主分支master
上。可以有效的对项目进行管理,降低出错概率。更新与合并
更新本地仓库,以及将本地数据合并到
master
,获取 (fetch
) 并合并 (merge
) 远端的改动。当然,不是每一次的合并都是顺利的,可能会出现冲突,这时候,就需要手动去修改冲突文件并合并冲突。
标签
在开发过程中,是需要标签的,来标记软件发布情况。
回退
有时候,可能在
commit
时,发现有错误,或者在push
时,发现commit log
信息错误,不允许提交(当然这是在公司项目配置的情况下才会发生),我们就需要对提交进行回退,去修改错误或者修改commit log
信息。当然,还有命令时是用于版本回退的。