阅读 114

Git 常用操作

一、本地项目上传到远程仓库

  1. 建立本地git仓库
cd 到你的本地项目根目录下,执行git命令
git init
复制代码
  1. 将本地项目工作区的所有文件添加到暂存区
git add .
.表示所有文件
如果想添加项目中的指定文件,那就把.改为指定文件名即可
复制代码
  1. 将暂存区的文件提交到本地仓库
git commit -m ""
冒号里面写注释语句
复制代码
  1. 将本地仓库关联到码云上
git remote add origin https://gitee.com/gkh520/TravelMaster.git 
后面的URL地址就是我在第四步时复制的那个https地址
复制代码
  1. 将代码由本地仓库上传到码云仓库
git push -u origin master
如果执行失败,一般是没有将服务器代码同步到本地导致的。(如:failed to push some refs to 'https://gitee.com )

可以先执行 git pull --rebase origin master 下载远程文件进行合并 (注:pull=fetch+merge)
确认没有冲突,再次执行 git push -u origin master  即可完成代码上传
复制代码

二、一些其他操作

  1. 常用的git命令:
克隆:
克隆master:git clone 仓库地址
克隆dev分支: git clone -b dev  仓库地址

同步数据:git pull
同步数据:git pull origin name
提交数据:git push origin name

分支操作:
查看本地分支:git branch
查看本地和远程分支:git branch -va

创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout -b name
创建本地分支并将远程分支提取出来:git checkout -t origin/name

合并某分支到当前分支:git merge name

删除分支:git branch -d name
删除远程分支:git push origin :name
远程已经删除的分支,在本地执行  git  branch  -a 显示还存在,执行以下命令可以清除:git remote prune origin

打tag:
创建带备注标签(本地):git tag -a 1.0.0 -m "这是备注信息"
删除标签(本地):git tag -d 1.0.0
将本地标签发布到远程仓库
1. 发送所有 git push origin --tags
2. 指定版本发送 git push origin 1.0.0
删除远程仓库对应标签:git push origin --delete 1.0.0

撤销修改:git checkout – file
删除文件:git rm file
查看状态:git status
添加记录:git add file 或 git add .
添加描述:git commit -m “miao shu nei rong”
复制代码
  1. 提交代码的一般步骤
1.查看目前代码的修改状态
2.查看代码修改内容
3.暂存需要提交的文件
4.提交已暂存的文件
5.同步到服务器

1. 查看目前代码的修改状态
 提交代码之前,应该先检查目前所做的修改,git status命令
 a. changes to be committed(已暂存)
    new file //表示新建文件
    modified //表示修改文件
    deleted //表示删除文件
 b. changed but not updated(已修改)
    modified //表示修改文件
    deleted //表示删除文件
 c. untracked files(未跟踪)

2. 查看代码修改的内容
 git diff  <file>
 比较某文件与最近提交节点的差异。
 注意:如果该文件已暂存,那么应该使用git diff –cached<file>
 git diff <hashcode> <hashcode>  <file>
 比较某文件在提交节点a,节点b的差异。
 技巧:如果省略后面一个hashcode,则默认表示与上一提交节点比较。(也可以利用^运算符)

3. 暂存需要提交的文件
 如果是新建的文件 git add  <file>
 如果是修改的文件 git add  <file>
 如果是删除的文件 git rm  <file>

4. 提交已暂存的文件
 git commit
 注意注释填写规范。
 git commit --amend
 修改最近一次提交。有时候如果提交注释书写有误或者漏提文件,可以使用此命令。

5. 同步到服务器
 同步到服务器前先需要将服务器代码同步到本地
 命令: git pull
 如果执行失败,就按照提示还原有冲突的文件,然后再次尝试同步。
 命令:git checkout -- <有冲突的文件路径>
 同步到服务器
 命令: git push origin  <本地分支名>
 如果执行失败,一般是没有将服务器代码同步到本地导致的,先执行上面的git pull命令。
复制代码
  1. Git撤销git commit 但是未git push的修改
git log:  找到你想撤销的commit_id

已经用 git commit  提交了代码:
git reset --hard commit_id::完成撤销,同时将代码恢复到前一commit_id 对应的版本。
git reset commit_id:完成Commit命令的撤销,但是不对代码修改进行撤销,可以直接通过git commit 重新提交对本地代码的修改。

撤销版本:
已经push到线上,你想回退本地代码同时回退线上代码到某个指定的版本,线上,线下代码保持一致:
git revert commit_id

未使用 git add 缓存代码时:
可以使用 git checkout -- filepathname (比如: git checkout -- readme.md  ,不要忘记中间的 “--” ,不写就成了检出分支了!!)。
放弃所以的文件修改可以使用 git checkout .  

已经使用了 git add 缓存了代码:
git reset HEAD filepathname
复制代码
  1. 关于 git add
git add 命令,将待提交文件提交到本地。

如果遇到比较多的改动怎么办呢?还是一条条add吗?

git add -A  将所有变更都提交到本地缓存。

那么问题又来了。这个时候,用命令git status 查看,可以看到,待提交的文件,都变成了亮绿色。
那么,如果我不想全部提交。只想提交部分文件怎么办?而这不想提交的文件,又在刚刚被add 了。怎么办?

git add -I
选择3,找到要排除的文件,直接排除。选择7,回到提交目录上。再用git status查看。
复制代码

三、git仓库删除所有提交历史记录,成为一个干净的新仓库

  1. 切换到新的分支 git checkout --orphan latest_branch
  2. 缓存所有文件(除了.gitignore中声名排除的) git add -A
  3. 提交跟踪过的文件(Commit the changes) git commit -am "commit message"
  4. 删除master分支(Delete the branch) git branch -D master
  5. 重命名当前分支为master(Rename the current branch to master) git branch -m master
  6. 提交到远程master分支 (Finally, force update your repository) git push -f origin master