<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های Ahmad Shirzadi</title><link>https://virgool.ir/feed/@koregeloo</link><description>Proven communication, problem-solving, and technical skills, eager to learn and enjoy work, seeking backend developer role at company, praised for hard work and commitment to company goals.</description><language>fa</language><pubDate>2026-11-10 18:41:06</pubDate><image><url>https://files.virgool.ir/upload/users/102830/avatar/qESbTH.jpg</url><title>Ahmad Shirzadi</title><link>https://virgool.ir/@koregeloo</link></image><item><title>File Permissions in Ubuntu</title><link>https://virgool.ir/@koregeloo/file-permissions-in-ubuntu-dbmba31w5buo</link><description>Firstly you should know that:+ means add this permission to the other permissions that the file already has.= means ignore all permissions, set them exactly as I provide.So all of the &#34;read, write, execute, sticky bit, suid and guid&#34; will be ignored and only the ones provided will be set.read = 4, write = 2, execute = 1Here is the binary logic behind it (if you&#39;re interested):Using +x you are telling to add (+) the executable bit (x) to the owner, group and others.it&#39;s equal to ugo+x or u+x,g+x,o+xWhen you don&#39;t specify which one of the owner, group or others is your target, in case of x it will considers all of them. And as @Rinzwind pointed out, it&#39;s based on umask value, it adds the bit to the ones umask allows. remember if you specify the target like o+r then umask doesn&#39;t have any effect anymore.It doesn&#39;t touch the other mods (permissions).You could also use u+x to only add executable bit to the owner.Using 755 you are specifying:7 --&gt; u=rwx (4+2+1 for owner)5 --&gt; g=rx (4+1 for group)5 --&gt; o=rx (4+1 for others)So chmod 755 is like: chmod u=rwx,g=rx,o=rx or chmod u=rwx,go=rx.</description><category>Ahmad Shirzadi</category><author>Ahmad Shirzadi</author><pubDate>Mon, 09 Dec 2019 17:28:45 +0330</pubDate></item><item><title>difference between origin/branch_name and branch_name</title><link>https://virgool.ir/@koregeloo/difference-between-originbranchname-and-branchname-jp2pio1idvcn</link><description>there are different types of branches:local branches, i.e. branches you commit to,Branches that live in a remote repository, for lack of a better term.Remote-tracking branches. Also simply called remote branches, as in the Pro Git book, but I find this phrase confusing; remote-tracking branch is more accurate. They&#39;re special local branches whose sole purpose is to reflect the state of branches that live in a remote repository at the time of your last communication with the server. In particular, you can&#39;t commit to branches of this type.Here, branch_name is a local branch, whereas origin/branch_name is a remote-tracking branch; it reflects the state of the corresponding branch that lives in origin.Right after runninggit fetchthe remote-tracking branch origin/master and the corresponding branch that live in origin should be perfectly in sync (modulo concurrent pushes to the remote server, of course). It shouldn&#39;t be a surprise, then, thatgit push origin origin/branch_namedoesn&#39;t push anything: you&#39;re essentially attempting to push stuff that is already present in the ancestry of the corresponding branch that live in origin .However, if your local branch, branch_name, is ahead by one or more commits,then runninggit push origin branch_namewill push the commits contained in branch_name but not in the branch that live in origin:</description><category>Ahmad Shirzadi</category><author>Ahmad Shirzadi</author><pubDate>Mon, 09 Dec 2019 13:07:59 +0330</pubDate></item></channel></rss>