git初学需要掌握的一些操作
clone下来基础代码
我们一般基于现有的代码框架来做一些修改和提交,所以第一条命令就是
git clone git@[path]
这条命令将远程的代码分支clone到本地,一般是master分支/
建立新的分支
作为初学者,我们修改的代码一般不直接在master上,而是新建一个分支,所以第二条命令就是
git checkout -b [branch_name]
这条命令在master或者其他已有的分支上checkout出一条新的分支。
进行修改提交
在完成一些修改后,我们需要将我们的修改添加进git的Index区,并进行提交和push,所以第三,四条命令就是
git add --all
git commit -m “comment”
这里说明一下,git分区的知识,git一般分为三个区,工作区,即我们看到的源码,Index区,这个区可以暂存我们的修改,repository区,这个区是我们commit之后的分区,对应一个新的版本。我们直接是在工作区进行操作和修改,然后通过add操作将所作的修*改添加入Index,然后利用commit将index的修改提交到repository中。
/这里有个小的注意,就是在add的时候,尽量不要add太大的文件,比如我们实验的目录,编译的库等,这样会使提交的东西太多,这里我们就需要使用.gitignore文件来忽略掉这些文件,在.gitignore中,我们将需要忽略的目录和文件写入,如果某个目录下只有单个或少数几个文件需要保留,就在忽略这些目录下使用!来保留一些特定的文件/
提交到远程分支
在commit之后,需要push到远程分支,所以下一条命令就是
git push origin local_bracnch:remote_branch
一般情况下本地分支和远程分支的命名要一致。
提交错误的bug之后回退
作为初学者,当我们提交了错误的bug后想要回退的话,使用一条命令
git reset [–hard] commit_sha
这里commit_sha是对应每次提交的编码,我们指定了这个,就是可以回退到对应的版本,但是如果记不住的话,使用HEAD(当前版本),HEAD^(上一版本),HEAD~n(上n版本)。
reset的话,同样也有hard,soft,mixed三种,默认是soft,soft和hard的区别在于是否回退工作区的内容,即删除自reset版本以来对工作区的未commit的修改。当使用soft时,我们会保留工作区和index区的内容,同时会将当前版本和reset版本的repository的差异写入Index区,这样我们回退之后,使用commit便可以将这种差异提交。使用hard时,这些index和工作区的修改都会被删除,完全恢复到之前的状态,需慎用/
提交回退后修改的代码
当回退并且保证修改正确后,我们再次push代码,但是注意,需要加上-f,来保证可以覆盖之前的内容
git push -f
以上就是对于初学者一些基本的操作命令,作为初学者,我们需要从这些操作的学习中不断地规范自己代码管理的习惯。
将修改后的分支合并到master
当完成某个分支的开发任务后,需要将该分支合并到master,这时需要一下命令:
更新master分支
git checkout master
git pull origin master
切换到dev分支并尝试合并
git checkout dev
git rebase master
若发现有冲突的文件,则修改,这里冲突的问题会体现在对同一文件的同一区域(同一行)进行修改,需要手动的解决/
切换到master进行合并
git checkout master
git merge dev
这里合并成功后,master分支的commit记录会出现dev原来的commit记录
提交并push
git add .
git commit
git push origin master
2021.6.22
更新一些遇到的细节。
当我们需要将一个本地新建的repo push到远程仓库时,可以将本地repo的origin更改一下,操作如下:
git remote rename orgin old_orgin
git remote add orgin “远程仓库地址”
git push -U orgin --all
git push -U orgin --tags
-u的目的是指定默认远程仓库,后面都默认使用这个,不用加U了。