git学习——快速入门

来源:互联网 发布:java多线程简单实例 编辑:程序博客网 时间:2024/06/07 23:19

代码本地提交:
本地目录修改——>
index(就是你使用add操作后,文件进入index)——>
本地仓库(commit之后的代码在这里)——>
远程仓库(push后代码在这里)

Step 1 初始化本地git库

# 本地生成git工作空间

git init

Step2 或者clone 远程git库

# 从github(远程)上克隆工作空间及项目

git clone git@github.com:/.git

Step3 开发完毕,提交

….代码开发完毕….准备提交
两天过去了,我要提交代码,有两种情况:

情况1.有人再上午提交了代码,那么我的工作空间就不是最新版本!

#`git pull <repository> <refspec>`  问题?任何分支下都默认 origin master ??  如果直接git commit ... 会被reject

git pull

$ git pullremote: Counting objects: 3, done.remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0Unpacking objects: 100% (3/3), done.From github.com:topCoderzhangshuo/tt   4aa3b67..1960953  master     -> origin/masterAuto-merging c.txtCONFLICT (content): Merge conflict in c.txtAutomatic merge failed; fix conflicts and then commit the result.
可以看到,最糟的情况是有冲突,那么解决冲突吧:

这里写图片描述

分割线上边是本地文件的内容;下边是远程的内容

手动修改冲突

修改完成再次commit

情况2.目前,从我clone下来代码后没有人提交过(直接 commit)

#或者用如下两条命令
# git add c.txt
对于 git add的撤销 可以使用:git reset HEAD c.txt ;变为untraced文件

# git commit -m “test”

git commit c.txt -m “test “

对于commit之后的代码删除,可以使用 git rm –cached c.txt;从index中删除变为untraced.

这两个命令删除 untraced files
git clean -nd,显示要删除的内容,但是是预删除
git clean -fd,强制删除多余的文件和目录
目前代码已经在本地仓库提交完毕

比如我想恢复到当前最新代码,并保持远程与本地一致!
git reset –hard HEAD

git clean -nxfd (删除untrack files 包含ignore)
git clean -nfd (删除untrack files 不包含ignore)

Step4推向远程代码库

git push

0 0